这是什么意思? - if(null ===($ bar = $ foo-> getBar()))

时间:2011-05-08 11:33:22

标签: php

当我们有类似的东西时:

if (null === ($bar = $foo->getBar())) {

}

我们在这一行上做了三件事吗? 我们是:

1)声明变量。

2)变量值的属性。

3)检查该变量值是否为空。

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

http://www.php.net/manual/en/language.types.null.php

答案 2 :(得分:1)

等于:

 $bar = $foo->getBar();
 if ($bar === null) {

 }

请记住,===和==之间存在差异。 ===是精确比较运算符,因此0 == null为true但0 === null为false。 “”== null为true,“”=== null为false。