0

谁能告诉我使用 '===' 的区别

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

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

如果 $this->getName 已经定义。

提前致谢

4

4 回答 4

1

只要您使用===or就没有区别==

现在你可能想知道为什么有人把他们所有的价值观都写在左边。这是因为我们的开发人员往往会忘记或写错字==,然后我们输入=. 这是意外分配。

if($id=13){
  echo "foo";
}

在上面的代码中很难找到问题。应该写成$id==13. 那些写 as 的13==$id人不必处理这个问题,因为他们忘记了=它变成13=$id了语法错误。这样就避免了这种几乎不可能检测到的错误

于 2012-04-04T06:03:31.273 回答
0

PHP 中的===运算符是对称的,所以它们是相同的。

于 2012-04-04T05:55:16.457 回答
0

两个条件之间没有区别,但是,通常的做法是先放置要检查的值,因此您不会意外地将条件检查变成赋值操作:

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

// Assignment
if ($myName = null )

// Avoids the confusion of either the above
if (null === $this->getName())

您还可以使用is_null PHP 函数来测试变量是否为空。

于 2012-04-04T05:57:53.783 回答
0

从我读到的内容来看,唯一显着的区别是严格按照编写顺序,在某些情况下可以更轻松地跟踪给定的测试。

我也考虑 PHP 首先评估第一个学期,但这不会产生任何差异,因为无论如何它们都会被评估。

于 2012-04-04T05:58:19.157 回答