在PHP中不等于!=和!==

我一直这样做: if ($foo !== $bar)

但我意识到这if ($foo != $bar)也是正确的。

Double

=仍然可以使用,并且一直为我工作,但是每当我搜索PHP运算符时,都找不到关于double的信息=,因此我认为我一直做错了,但是无论如何它都可以工作。我应该改变我的所有!==!=只是为了它的缘故?

回答:

==并且!=不考虑您比较的变量的数据类型。因此,这些都将返回true:

'0'   == 0

false == 0

NULL == false

===并且!== 考虑到数据类型。这意味着将字符串与布尔值进行比较

是正确的,因为例如它们的类型不同。这些都将返回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

以上是 在PHP中不等于!=和!== 的全部内容, 来源链接: utcz.com/qa/433592.html

回到顶部