空合并运算符也可用于虚假值,但不能用于空值?
Null coalescing operator also usable with falsy values, but not nulls?
PHP 中新的 空合并运算符 无疑是一个很棒的功能,有点类似于 JavaScript 对 ||
的使用获取默认值。
我已经阅读了一些关于此功能的文档和文章,但有些事情我还是不太清楚。
1. 我可以将此运算符与任意数量的操作数一起使用吗?例如,这有效吗?
$a = $p1 ?? $p2;
$b = $r1 ?? $r2 ?? $r3 ?? $r4 ?? $r5;
2. 不为空的虚假值是什么?
$test = false ?? 0 ?? 'test';
- 现在 $test
是什么?如果它不适用于 null 以外的虚假值,我们如何实现它像 JavaScript 的 ||
?
一样工作
我创建了 this,它应该可以回答您的问题。
总之
运算符可以链接起来,它将return链中设置的第一个元素,而不是空值。
根据documentation会return the result of its first operand if it exists and is not NULL, or else its second operand
。因此,如果第一个操作数是 false
,它将 return false
.
PHP 中新的 空合并运算符 无疑是一个很棒的功能,有点类似于 JavaScript 对 ||
的使用获取默认值。
我已经阅读了一些关于此功能的文档和文章,但有些事情我还是不太清楚。
1. 我可以将此运算符与任意数量的操作数一起使用吗?例如,这有效吗?
$a = $p1 ?? $p2;
$b = $r1 ?? $r2 ?? $r3 ?? $r4 ?? $r5;
2. 不为空的虚假值是什么?
$test = false ?? 0 ?? 'test';
- 现在 $test
是什么?如果它不适用于 null 以外的虚假值,我们如何实现它像 JavaScript 的 ||
?
我创建了 this,它应该可以回答您的问题。
总之
运算符可以链接起来,它将return链中设置的第一个元素,而不是空值。
根据documentation会
return the result of its first operand if it exists and is not NULL, or else its second operand
。因此,如果第一个操作数是false
,它将 returnfalse
.