📜  php 8 null 安全运算符 - PHP (1)

📅  最后修改于: 2023-12-03 15:33:27.953000             🧑  作者: Mango

PHP 8 Null 安全运算符

简介

在 PHP 8 中,引入了 Null 安全运算符(Nullsafe Operator),这是一个新的运算符,其作用是安全地访问可能为空的对象属性和方法。

以往,我们在访问一个对象属性或方法时,需要先判断该对象是否为 null,如下所示:

if($obj !== null){
    $result = $obj->getProperty();
}

这样做的缺点是它十分繁琐,容易出错。而 Null 安全运算符就是为了简化这个过程而生。

语法

Null 安全运算符的语法是 ?->,它用于访问可选链的后续部分。

$result = $obj?->getProperty();

$obj 为 null 时,返回值为 null,不会抛出异常。

除了访问属性外,Null 安全运算符还可以用于调用方法。

$result = $obj?->method();
优点

使用 Null 安全运算符有以下几个优点:

  1. 简化代码,并且可读性更好。
  2. 减少错误,避免了因为空对象而出现致命错误,不再需要使用繁琐的 null 检查。
  3. 提高了程序运行效率,减少了不必要的 null 值判断操作。
示例

下面是一个使用 Null 安全运算符访问对象属性的示例:

class TestClass {
    public $property;
}

$obj = null;
$result = $obj?->property;
var_dump($result); // 输出:NULL

$obj = new TestClass();
$obj->property = 'Hello World';
$result = $obj?->property;
var_dump($result); // 输出:string(11) "Hello World"

我们可以看到,使用 Null 安全运算符时,当对象为空时,返回值为 null,不会抛出异常,代码更加简洁可读。

总结

Null 安全运算符是 PHP 8 中一个极为有用的新特性,可以简化代码,减少错误,并且提高程序运行效率。所以,在开发项目时,我们应该优先使用 Null 安全运算符而不是手动判断 null 值。