PHP Nullsafe(?->)运算符的用法(附带实例)
PHP 8 新增了 Nullsafe 空安全运算符
空安全运算符的作用是:如果全等于 NULL 则断开并返回 NULL,如果不全等于 NULL 则往后继续执行。空安全运算符可以大幅度减少代码量,且不会出现因为 NULL 操作导致的错误了。
下面通过案例来学习空安全运算符的使用方法。
先定义一个商品类,代码如下:
在 PHP 8 之前的版本中,需要通过 if 进行层层判断是否为 NULL,代码如下:
?->
,常用于类中属性和方法的返回值。空安全运算符的作用是:如果全等于 NULL 则断开并返回 NULL,如果不全等于 NULL 则往后继续执行。空安全运算符可以大幅度减少代码量,且不会出现因为 NULL 操作导致的错误了。
下面通过案例来学习空安全运算符的使用方法。
先定义一个商品类,代码如下:
class Goods{ public $name; public $city; public function __construct() { $this->name=$this; $this->city='上海'; } public function getAddress() { return $this; } } $gds=new Goods();
在 PHP 8 之前的版本中,需要通过 if 进行层层判断是否为 NULL,代码如下:
if($gds!==null) { $name = $gds->name; if($name!==null) { $address = $name->getAddress(); if($address!==null) { $city = $address->city; if($city!==null) { var_dump($city); } } } }运行上述程序输出结果为:string(6) "上海"。在 PHP 8 版本中,只需要一行代码即可实现上述功能:
echo $gds?->name?->getAddress()?->city