Gre*_*fer 6 operator-keyword php-7.4
一旦我偶然发现带有 operator 的 php7 代码??=。我试图搜索,它清楚地做了什么,但无法轻松找到。我试图读出 php 操作符,甚至大多数官方资源都有所有操作符的描述,甚至像.=,这样的复合操作符+=,但没有描述??=
例如,PHP Operators保留了所有运算符的描述,如直接形式 ( ., +),复合形式 ( .=, +=),但没有??=,因此我首先感到困惑并认为这完全是另一回事。问题简单明了,但整个案例有点混乱,这就是为什么我试图帮助像我这样的其他 php 初学者
Gre*_*fer 28
所以最终我决定编写代码并亲自观察 - 它是如何工作的以及它做了什么。
在 PHP7.0 中添加了Null Coalescing 运算符:
$username = $_GET['username'] ?? 'not passed';
Run Code Online (Sandbox Code Playgroud)
我们的 $username 将具有 $_GET['username'] 值 - 如果它存在且不为空,否则 $username 将获得“未传递”字符串。但有时您可能会遇到一种情况,当您需要检查变量本身是否存在且不可为空时:
$first_test = $first_test ?? 'not started';
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以使用空合并运算符的复合版本 - '??=':
$first_test ??= 'not started';
Run Code Online (Sandbox Code Playgroud)
就是这样,只是“??”的复合版本 对于检查自身变量的情况。