Not equal to != and !== in PHP
==
and !=
do not take into account the data type of the variables you compare. So these would all return true:
'0' == 0false == 0NULL == false
===
and !==
do take into account the data type. That means comparing a string to a boolean will never be true because they're of different types for example. These will all return false:
'0' === 0false === 0NULL === false
You should compare data types for functions that return values that could possibly be of ambiguous truthy/falsy value. A well-known example is 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
$a !== $b
TRUE if $a
is not equal to $b
, or they are not of the same type
Please Refer to http://php.net/manual/en/language.operators.comparison.php