这个问题在这里已经有了答案:
What is null coalescing assignment ??= operator in PHP 7.4
(6 个回答)
12 个月前关闭。
一旦我偶然发现带有运算符 ??=
的 php7 代码.我试图搜索,它清楚地做了什么,但无法轻松找到。我试图读出 php 操作符,甚至大多数官方资源都有所有操作符的描述,甚至像 .=
这样的复合操作符。 , +=
,但没有对 ??=
的描述
例如,PHP Operators保留所有运算符的描述,以直接形式( .
, +
),作为复合( .=
, +=
),但没有 ??=
,正因为如此,我首先感到困惑,并认为这完全是另一回事。
问题简单明了,但整个案例有点困惑,这就是为什么我试图帮助像我这样的其他 php 初学者
最佳答案
所以最终我决定自己编写代码并观察它的工作原理和作用。
在 PHP7.0 中添加了 Null Coalescing operator :
$username = $_GET['username'] ?? 'not passed';
我们的 $username 将具有 $_GET['username'] 值 - 如果它存在且不为空,否则 $username 将获得“未通过”字符串。但有时您可能会遇到这种情况,当您需要检查变量本身是否存在和不可为空时:
$first_test = $first_test ?? 'not started';
在这种情况下,您可以使用空合并运算符的复合版本 - '??=' :$first_test ??= 'not started';
就是这样,只是'??'的复合版本对于您检查自身变量的情况。
关于operator-keyword - (??=) 双问号和等号,那个运算符有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64441592/