添加数组索引的PHP快捷方式可能存在,也可能不存在?

添加数组索引的PHP快捷方式可能存在,也可能不存在?,php,Php,这感觉非常基本,但我想我错过了一个技巧。假设我有这个: $array[$key] += $value; 如果已经设置了$array[$key],则可以正常工作,但如果未设置,PHP会注意未定义的变量 显然我能做到 if (isset($array[$key])) $array[$key] += $value; else $array[$key] = $value; 或 但我觉得可能有更整洁的东西?使用isset($array[$foo]),而不是isset($array[$f

这感觉非常基本,但我想我错过了一个技巧。假设我有这个:

$array[$key] += $value;
如果已经设置了$array[$key],则可以正常工作,但如果未设置,PHP会注意未定义的变量

显然我能做到

if (isset($array[$key]))
    $array[$key] += $value;
else
    $array[$key] = $value;


但我觉得可能有更整洁的东西?

使用isset($array[$foo]),而不是isset($array[$foo])!空($array[$foo])处理现有值,而else处理不存在的索引。

如果在求和之前知道整组
$key
值是什么样子,则可以提前准备数组,只需使用
+=

$array = array_fill_keys($all_keys, 0);

避免在循环中使用if/then是一件好事。

不,你必须接受它。正确,如果数组项没有设置值,你就不能向它添加任何内容。这就像除以0。我知道@the_pete,我只是想知道是否有一个聪明的语法技巧我错过了。沿着(但不是)$array[$key]=$array[$key]+$value | |$value;我想也会有@options。如果你在寻找语法捷径,你可以查看
if-then-else…
我在我的原始帖子中已经包含了一个三元选项,但是谢谢。
$array = array_fill_keys($all_keys, 0);