Operator keyword (??=)双问号和等号,该运算符做什么?

Operator keyword (??=)双问号和等号,该运算符做什么?,operator-keyword,php-7.4,Operator Keyword,Php 7.4,有一次,我遇到了php7代码,操作员??=。我试着去搜索,它清楚地做了什么,但很难找到。我试图读出php操作符,即使是大多数官方资源也有所有操作符的描述,甚至还有复合操作符,如=,+=,但没有??=的描述 例如,将所有运算符的描述保持为直接形式(,+),保持为复合形式(=,+=),但没有??=,因此我首先感到困惑,认为这完全是另一回事。 这个问题很简单也很明显,但整个案例有点混乱,这就是为什么我试图帮助其他像我这样的php初学者,所以最终我决定自己编写代码,看看它是如何工作的,它做了什么 在PH

有一次,我遇到了php7代码,操作员
??=
。我试着去搜索,它清楚地做了什么,但很难找到。我试图读出php操作符,即使是大多数官方资源也有所有操作符的描述,甚至还有复合操作符,如
=
+=
,但没有
??=
的描述

例如,将所有运算符的描述保持为直接形式(
+
),保持为复合形式(
=
+=
),但没有
??=
,因此我首先感到困惑,认为这完全是另一回事。
这个问题很简单也很明显,但整个案例有点混乱,这就是为什么我试图帮助其他像我这样的php初学者,所以最终我决定自己编写代码,看看它是如何工作的,它做了什么

在PHP7.0中添加了:

我们的$username将具有$_GET['username']值-如果它存在且不为null,否则$username将获得“not passed”字符串。 但有时您可能会遇到这样的情况,即需要检查变量本身是否存在而不是是否为空:

$first_test = $first_test ?? 'not started';
在这种情况下,您可以使用空合并运算符的复合版本-“??=”

$first_test ??= 'not started';

就是这样,对于检查自身变量的情况,只需使用“??”的复合版本。

??=
仅在PHP7.4及以上版本中添加--谢谢,不知道,该运算符及其速记以不同版本发布谢谢,你是对的,但是,你看,你不能随意搜索它,因为,例如,谷歌对于你的请求“??=”没有返回任何有用的信息——就像“双qestion标记等号”一样,所以你就是找不到信息是从哪里查出来的
$first_test ??= 'not started';