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

我这样做:

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

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

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

有帮助吗?

解决方案

这是安全的,但我建议不要这样做。 如果您将错误报告放到E_NOTICES,您将看到您的代码产生了大量错误,掩盖了任何真正的错误(例如错误的变量名称)。

你应该做的是:

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

这不会引发通知(但要小心不要在isset()内错误输入$ arr。)

其他提示

php 7开始,您现在可以执行以下操作:

foreach ($item as $key=>$value) {
    $arr[$key] = ($arr[$key] ?? 0) + other_arr[$value];
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top