在php中使用等于运算符的差异

时间:2012-04-04 05:52:31

标签: php

任何人都可以告诉我使用'==='作为

的区别
if (null === $this->getName())

if ($this->getName() === null )

如果已定义$ this-> getName。

提前致谢

4 个答案:

答案 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首先评估第一个学期,但这不会产生任何差异,因为它们都会被评估。