Tuesday, July 15, 2008

(string)"false" == (int)0 is true [PHP]

if ("false" == true) echo "true\n";
// => true
if ("false" == false) echo "true\n";
// => false
if ("false" == 0) echo "true\n";
// => true, notice it!!
if (false == 0) echo "true\n";
// => true, as expected
// so "false" = true && "false" = 0, so "false" is true and
// false is false and we haven't even discussed identity, yet
if ((string)"false" === (int)0) echo "true\n";
// => false, ...ok...
if ("0" === 0) echo "true\n";
// => false
if ("false" === false) echo "true\n";
// => false
if ((int)"0" === 0) echo "true\n";
// => true, with type coercion
if ("false") echo "true\n";
// => true
if (0) echo "true\n";
else echo "false\n";
// => false
reference:
http://maurus.net/resources/programming-languages/php/

No comments :