有没有办法使用某种方式编写以下语句安全导航操作员 http://docs.codehaus.org/display/GROOVY/Operators#Operators-SafeNavigationOperator?
echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';
所以它看起来像这样:
echo $data->getMyObject()?->getName();
从 PHP 8 开始,您可以使用空安全运算符 https://wiki.php.net/rfc/nullsafe_operator与空合并运算符相结合,您可以编写如下代码:
echo $data->getMyObject()?->getName() ?? '';
通过使用?->
代替->
运算符链终止,结果将为空。
“查看对象内部”的操作符被视为链的一部分。
- 数组访问 ([])
- 财产访问(->)
- Nullsafe 属性访问 (?->)
- 静态属性访问 (::)
- 方法调用 (->)
- Nullsafe 方法调用 (?->)
- 静态方法调用 (::)
例如对于代码:
$string = $data?->getObject()->getName() . " after";
如果 $data 为 null,则该代码相当于:
$string = null . " after";
由于字符串连接运算符不是“链”的一部分,因此不会短路。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)