检查数组是否存在,然后检查++或设置标准值

时间:2017-09-07 22:28:46

标签: php arrays

我发现了很多关于此事的线索,但我仍然无法弄明白。

这段代码对我有用,但是如何以更有效的方式编写它(我有PHP7)?

if( isset($statsArr['Status'][$s_id]['count']) ) { $statsArr['Status'][$s_id]['count']++; } else { $statsArr['Status'][$s_id]['count'] = 1; }

这不起作用,并不是更紧凑的代码:

$statsArr['Status'][$s_id]['count'] = isset($statsArr['Status'][$s_id]['count']) ? $statsArr['Status'][$s_id]['count']++ : 1;

1 个答案:

答案 0 :(得分:4)

您的尝试可行,您只需要在变量开头的增量运算符:

$statsArr['Status'][$s_id]['count'] = isset($statsArr['Status'][$s_id]['count']) ? ++$statsArr['Status'][$s_id]['count'] : 1;

开头意味着“执行增量然后返回”。最后意味着“返回,然后执行增量”。

您还可以缩短为:

$statsArr['Status'][$s_id]['count'] = ($statsArr['Status'][$s_id]['count'] ?? 0) + 1;

这利用了7.0中添加的null coalesce operator