任何人都可以告诉我使用'==='作为
的区别if (null === $this->getName())
和
if ($this->getName() === null )
如果已定义$ this-> getName。
提前致谢
答案 0 :(得分:1)
只要您使用===
或==
,就没有区别。
现在你可能想知道为什么有人在左边写下他们所有的价值观。这是因为我们开发者倾向于忘记或写错字==
并输入=
。这是偶然的分配。
if($id=13){
echo "foo";
}
很难在上面的代码中找到问题。哪个应该写成$id==13
。写作13==$id
的人不必处理这个问题,因为当他们忘记=
它变为13=$id
这是一个语法错误。这样就可以避免这种几乎不可能检测到错误。
答案 1 :(得分:0)
PHP中的===
运算符是对称的,因此它们是相同的。
答案 2 :(得分:0)
这两个条件之间没有区别,但是,通常的做法是先放置您要检查的值,这样就不会意外地将条件检查转换为赋值操作:
// Conditional
if ($this->getName() === null )
// Assignment
if ($myName = null )
// Avoids the confusion of either the above
if (null === $this->getName())
您还可以使用is_null PHP函数来测试变量是否为空。
答案 3 :(得分:0)
从我读过的内容来看,唯一值得注意的差异是严格按照写作的顺序,在某些情况下可以更容易地遵循给定的测试。
我还认为PHP首先评估第一个学期,但这不会产生任何差异,因为它们都会被评估。