我发现了很多关于此事的线索,但我仍然无法弄明白。
这段代码对我有用,但是如何以更有效的方式编写它(我有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;
答案 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