📅  最后修改于: 2023-12-03 14:58:08.684000             🧑  作者: Mango
在 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 或者不存在时才会生效,这一点需要谨记。