我一直都是这么做的:if ($foo !== $bar)
但我意识到if ($foo != $bar)
也是正确的。
Double =
仍然有效并且一直为我工作,但是每当我搜索 PHP 运算符时,我都找不到有关 double 的信息=
,所以我认为我一直都做错了,但无论如何它都是有效的。我是否应该改变我的一切!==
to !=
只是为了它吗?
==
and !=
不考虑您比较的变量的数据类型。所以这些都会返回 true:
'0' == 0
false == 0
NULL == false
===
and !==
do考虑数据类型。这意味着将字符串与布尔值进行比较never这是真的,因为它们属于不同类型。这些都会返回 false:
'0' === 0
false === 0
NULL === false
您应该比较返回可能具有不明确真值/假值的值的函数的数据类型。一个众所周知的例子是strpos()
:
// This returns 0 because F exists as the first character, but as my above example,
// 0 could mean false, so using == or != would return an incorrect result
var_dump(strpos('Foo', 'F') != false); // bool(false)
var_dump(strpos('Foo', 'F') !== false); // bool(true), it exists so false isn't returned
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)