1

我发现自己在 PHP 中使用关联数组做了很多事情。

我正在这样做:

 foreach ($item as $key=>$value) {
     if ($arr[$key] == null) {
         $arr[$key] = 0; 
     }
     $arr[$key] += $other_arr[$value];
 }

但后来我意识到,如果我排除初始化 $arr[$key] 的行,它可以正常工作,大概是因为它是 null,它被视为与 0 相同。

在 php 中做出这种假设是否安全?如果它是安全的,这是一个好主意吗?

4

2 回答 2

7

它是安全的,但我建议不要这样做。如果您将错误报告设置为 E_NOTICES,您会看到您的代码产生了很多错误,从而掩盖了任何真正的错误(例如输入错误的变量名)。

你真正应该做的是:

if (!isset($arr[$key]))
    $arr[$key] = 0;

这不会引起注意(但要非常小心,不要在 isset() 中输入错误的 $arr)。

于 2008-11-21T13:57:16.700 回答
0

php 7现在可以执行以下操作:

foreach ($item as $key=>$value) {
    $arr[$key] = ($arr[$key] ?? 0) + other_arr[$value];
}
于 2015-09-26T23:15:06.700 回答