首页 > 编程笔记 > PHP笔记 阅读:10

PHP Nullsafe(?->)运算符的用法(附带实例)

PHP 8 新增了 Nullsafe 空安全运算符?->,常用于类中属性和方法的返回值。

空安全运算符的作用是:如果全等于 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

相关文章