利用 PHP 的 Nullsafe 运算符进行条件导航
PHP 开发人员经常遇到需要访问可能为 null 的对象的属性或方法的情况。传统上,这需要繁琐的空检查和三元运算符的嵌套才能安全地访问所需的值。然而,随着 PHP 8 的引入,空安全运算符 (-?) 增强了代码可读性并减少了与此类操作相关的冗长性。
问题:
是有一种简洁的方法可以使用安全导航编写以下代码运算符?
echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';
答案:
在 PHP 版本 8 及更高版本中,您可以将空安全运算符 (-?) 与空合并运算符结合使用(??) 来完成这个任务。生成的代码大大简化了语法:
echo $data->getMyObject()->getName() ?? '';
通过使用 -? null 安全运算符,如果左侧为 null,则运算符链将被有效破坏。这将返回 null,允许 null 合并运算符将默认值替换为空字符串。
了解 Nullsafe 运算符 (-?)
null 安全运算符允许程序员可以在特定点有选择地终止属性或方法调用链。检查对象内部或与对象内部交互的运算符被视为链的一部分,包括:
示例:
考虑以下代码:
$string = $data?->getObject()->getName() . " after";
如果 $data 为空,则此代码等效于:
$string = null . " after";
这是因为字符串连接运算符不是链的一部分,也不是短路的。
通过利用 null 安全运算符,PHP 开发人员可以有效处理条件导航场景中的空值,提高代码的可读性和简洁性。
以上是PHP 的 Nullsafe 运算符可以简化条件属性访问吗?的详细内容。更多信息请关注PHP中文网其他相关文章!