In JavaScript, the == operator isn\'t necessarily transitive:
==
js> \'0\' == 0 true js> 0 == \'\' true js> \'0\' == \'\' false
The same is true in PHP:
//php '0'==0 //true 0=='' //true ''=='0' //false
Did you not test it yourself? These are the same statements you provided for javascript.