空合并运算符也可用于虚假值,但不能用于空值?

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,它应该可以回答您的问题。

总之

  1. 运算符可以链接起来,它将return链中设置的第一个元素,而不是空值。

  2. 根据documentationreturn the result of its first operand if it exists and is not NULL, or else its second operand。因此,如果第一个操作数是 false,它将 return false.