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
答案 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]++;
}
在增加数组之前,必须确保数组包含该键。