这个问题在这里已经有了答案:
Is there a “nullsafe operator” in PHP?
(3 个回答)
9 个月前关闭。
我想在链式语句中省略对 null 的检查,例如
if($a && $a->$b && $a->$b->$c){
$d = $a->$b->$c;
}
并改用可选链接。
这是可能的还是在 PHP 中实现的?
最佳答案
在低于 8 的 PHP 版本中,不支持可选链接。您可以使用 error control operator 模拟它的属性。 ( @
) 这将抑制分配中通常会出现的任何错误。例如:
$b = 'b';
$c = 'c';
$e = 'e';
$a = (object)['b' => (object)['e' => 2]];
@$d = $a->$b->$c;
var_dump($d);
@$d = $a->$b->$e;
var_dump($d);
输出:NULL
int(2)
Demo on 3v4l.org更好的解决方案是使用空合并运算符,如@FouedMOUSSI 答案中所述。
从 PHP8(2020 年 11 月 26 日发布)开始,通过 nullsafe operator 支持可选链接(请参阅@Paul 回答或发布的副本)。
关于php - PHP 中是否有可选链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57818703/