不等于 PHP 中的 != 和 !==
我一直这样做:if ($foo !== $bar)
但我意识到这也是正确的。if ($foo != $bar)
Double仍然有效并且一直为我工作,但是每当我搜索PHP运算符时,我都没有找到有关double的信息,所以我假设我总是做错了,但它无论如何都有效。我应该为了它而改变我的所有东西吗?=
=
!==
!=
我一直这样做: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
!== 应与值和数据类型匹配
!= 只需匹配值,忽略数据类型
$num = '1';
$num2 = 1;
$num == $num2; // returns true
$num === $num2; // returns false because $num is a string and $num2 is an integer