 <p>$a == $b Equal TRUE if $a is equal to $b after type juggling. $a === $b Identical TRUE if $a is equal to $b, and they are of the same type. </p> <p>it looks that</p> <p>if you check 0 against a string with == then PHP returns true:</p> <p>php -r 'var_dump(0 == "statuses");' -> returns TRUE</p> <p>but not if your string has a number at the beginning:</p> <p>php -r 'var_dump(0 == "2statuses");' -> returns FALSE</p> <p>from the specs I get it that it attempts a conversion - in this case the string to number.</p> <p>so better use ===</p> <p><a href="http://php.net/manual/en/language.operators.comparison.php" rel="nofollow">http://php.net/manual/en/language.operators.comparison.php</a></p>