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