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
ICP备案:
公安联网备案: