增加不在php中初始化数组值

时间:2014-01-20 17:18:44

标签: php arrays

HY 我有一个foreach循环,将数组键添加到另一个数组。我想知道它是否可以增加(使用++)和uninitialize元素。 目前我的代码是:

foreach($SociBdP as $id=>$socio)
{
    if(!isset($provenienza[$option_name]))
        $provenienza[$option_name]=0;
    $provenienza[$option_name]++;
}

我想知道是否安全

foreach($SociBdP as $id=>$socio)
{
    $provenienza[$option_name]++;
}

或者存在风险(如在c ++中),数组的默认值不是0

2 个答案:

答案 0 :(得分:5)

虽然它可以信任documented behaviour

  

没有必要在PHP中初始化变量,但它是一个   非常好的做法。未初始化的变量的默认值为   它们的类型取决于它们的使用环境 - 布尔值   默认为FALSE,整数和浮点数默认为零,字符串(例如   在echo中使用)被设置为空字符串,数组变为空   阵列。

...它还会阻止您利用通知,因为您需要降低error reporting设置,以免它们在开发阶段出现:

var_dump($foo);
Notice: Undefined variable: foo in D:\tmp\borrame.php on line 3
NULL

通知被新手视为烦恼,但它们实际上是发现愚蠢错别字的绝佳工具。

答案 1 :(得分:0)

不,正确的是:

foreach($SociBdP as $id=>$socio)
{
    if(!isset($provenienza[$option_name]))
        $provenienza[$option_name]=0;
    $provenienza[$option_name]++;
}

在增加数组之前,必须确保数组包含该键。