==并且
!=不考虑您比较的变量的数据类型。因此,这些都将返回true:
'0' == 0false == 0NULL == false
===并且
!==也 考虑到数据类型。这意味着将字符串与布尔值进行比较 永远不会
是正确的,因为例如它们的类型不同。这些都将返回false:
'0' === 0false === 0NULL === 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 resultvar_dump(strpos('Foo', 'F') != false); // bool(false)var_dump(strpos('Foo', 'F') !== false); // bool(true), it exists so false isn't returned


