Let me share some PHP code with you:
$var1 = '';
$var2 = 0;
echo '<pre>';
var_dump($var1 == $var2); //prints bool(true)
echo '</pre>';
echo '<pre>';
var_dump($var1 != $var2); //prints bool(false)
echo '</pre>';
echo '<pre>';
var_dump(!$var1 == $var2); //prints bool(false)
echo '</pre>';
echo '---<br />';
echo '<pre>';
var_dump($var1 === $var2); //prints bool(false)
echo '</pre>';
echo '<pre>';
var_dump($var1 !== $var2); //prints bool(true)
echo '</pre>';
echo '<pre>';
var_dump(!$var1 === $var2); //prints bool(false) .. WTFF????
echo '</pre>';
Question is… why does that last statement (! $var1 === $var2) NOT yield the same result as ($var !== $var2) ??? I mean, it’s what we would expect, no?
I used to use both ways interchangeably but now I only use !== although I still don’t know why the other form does not work…
!$var1isTRUE,$var2is0.They are not equal, so the result is
false.Maybe you were confused with
!($var1 === $var2)