📜  逻辑赋值运算符 null 合并 (1)

📅  最后修改于: 2023-12-03 14:58:08.684000             🧑  作者: Mango

逻辑赋值运算符 null 合并

简介

在 PHP 7.0 中引入了逻辑赋值运算符 null 合并(??=),该运算符用于在变量不存在或者为 null 的情况下给变量赋值默认值。

用法

以下是使用逻辑赋值运算符 null 合并的基本使用方式:

// if $name is not set, it will be assigned a value of 'John Doe'
$name = $_POST['name'] ?? 'John Doe';

上述代码示例中,如果 $_POST['name'] 不存在或者为 null,则 $name 变量将被赋值为 'John Doe'

注意事项
  • ??= 运算符只有在左操作数为 null 或者不存在的情况下才会给变量赋值默认值。

  • 右操作数若为一个无法访问的变量,将会触发错误,如下例所示:

    $arr = [1, 2, 3];
    $a = $arr['index'] ??= 4; // Uninitialized array index 'index' in null coalescing operator
    
  • ?? 的优先级较低,应该加上括号来保证正确的计算顺序。例如,以下代码将赋值 $a ?? ($b ?? $c),而不是 $a ?? $b ?? $c

    $a = null;
    $b = '';
    $c = 'hello';
    $d = $a ?? $b ?? $c;
    
总结

逻辑赋值运算符 null 合并是一个非常方便的语言特性,使得代码更加简洁易懂。在设计变量默认值时,使用这个运算符可以让代码更加精简。需要注意的是,该运算符在向变量赋值时只有当变量为 null 或者不存在时才会生效,这一点需要谨记。