PHP 中的 Nullsafe 运算符:实现条件对象导航
在 PHP 中,访问对象属性和调用方法可能会导致空指针异常,如果该对象为空或没有请求的成员。为了解决这个问题,PHP 8 中引入的 nullsafe 运算符 (?-) 可以安全地导航对象属性和方法。
考虑以下语句:
echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';
此语句检查是否$data 对象具有 getMyObject() 属性,如果它不为 null。如果该属性存在且不为 null,它将继续访问该对象内的 getName() 属性。但是,如果该属性不存在或者为 null,则该语句将不会继续执行。
使用 nullsafe 运算符,我们可以将语句重写为:
echo $data->getMyObject()?->getName();
在此语句中,如果 $data 为 null 或不具有 getMyObject() 属性,则运算符链终止,并返回 null。这使我们能够优雅地处理缺失的属性或方法调用,而不会出现异常。
nullsafe 运算符与以下访问对象属性和方法的运算符一起使用:
例如代码下面:
$string = $data?->getObject()->getName() . " after";
相当于:
$string = (isset($data) && $data !== null) ? $data->getObject()->getName() . " after" : null;
如果 $data 是null.
通过使用 nullsafe 运算符,我们可以编写更干净、更简洁的代码,同时确保不出现空指针异常。
以上是PHP 的 Nullsafe 运算符 (?-) 如何防止空指针异常?的详细内容。更多信息请关注PHP中文网其他相关文章!