> $arr = array(0, "was", "invented", "in", "india");
> var_dump( in_array("Hello", $arr ) );
and yeah it is TRUE because "Hello" got coerced to 0. I blogged about a major bug, I faced, in PHP, where column name "10th_grade" was being type-casted to "10" failing the "bindParam" [1]. Even if they have to continue this "feature" because of backwards compatibility, the least they could have done was NOT to use it in the newer functions but no, even they have this stupid "type juggling".
[1]: http://coffeecoder.net/blog/my-perfect-reason-avoid-php-type...