当我们有类似的东西时:
if (null === ($bar = $foo->getBar())) {
}
我们在这一行上做了三件事吗? 我们是:
1)声明变量。
2)变量值的属性。
3)检查该变量值是否为空。
答案 0 :(得分:5)
是的,完全像:
$bar = $foo->getBar();
if (null === $bar) {
}
$bar
将收到$foo->getBar()
返回的值,然后表达式测试是否(赋值表达式的结果,即赋值给$bar
的值)是=== null
。 (如果这是第一次使用$bar
,那么它就是在创建一个新变量。)
答案 1 :(得分:2)
首先执行函数getBar(),它返回赋给变量$ bar的内容。然后,如果$ bar等于null并且它们是相同类型(null类型),则运算符===返回true。
http://www.php.net/manual/en/language.operators.comparison.php
答案 2 :(得分:1)
等于:
$bar = $foo->getBar();
if ($bar === null) {
}
请记住,===和==之间存在差异。 ===是精确比较运算符,因此0 == null为true但0 === null为false。 “”== null为true,“”=== null为false。