如果不确定数组索引是否存在,他通常会做类似的事情
if (isset($array[$key]))
$val = $array[$key];
对于大型数组,不执行两次此查找是否更快?
如果是,如何一次查找即可做到这一点?
您可以使用空合并运算符:
$val = $array[$key] ?? null;
相当于:
$val = isset($array[$key]) ? $array['key'] : null;
唯一的小区别是,无论如何(null
(都会定义$val
,在原始代码中,如果您没有else
,它将保持未定义状态。
我不能肯定地说它的执行速度更快,但它绝对更方便/更干净(因为你不会在语句中两次编写相同的$array[$key]
部分(。
演示:https://3v4l.org/mtG7S