0=="value is not zero!"

$x=0;
$y="value is not zero!";
if($x==$y)  print "why!?";

さて…

PHPでは比較演算子が比較する際に、一方が数値であれば数値に変換して比較するようだ。そして、数字でない文字列は0に変換される。
そう、このアルゴリズムによって 0 は数字以外のあらゆる文字列と一致する、つまり PHP はすべてを無に帰そうとするZEND(ゼウス=神のもじり)の陰謀だったんだよ!

   な なんだってー!
            ,. -─- 、._               ,. -─v─- 、._     _ 
            ,. ‐'´      `‐、        __, ‐'´           ヽ, ‐''´~   `´ ̄`‐、 
       /           ヽ、_/)ノ   ≦         ヽ‐'´            `‐、 
      /     / ̄~`'''‐- 、.._   ノ   ≦         ≦               ヽ 
      i.    /          ̄l 7    1  イ/l/|ヘ ヽヘ ≦   , ,ヘ 、           i 
      ,!ヘ. / ‐- 、._   u    |/      l |/ ! ! | ヾ ヾ ヽ_、l イ/l/|/ヽlヘト、      │ 
.      |〃、!ミ:   -─ゝ、    __ .l         レ二ヽ、 、__∠´_ |/ | ! |  | ヾ ヾヘト、    l 
      !_ヒ;    L(.:)_ `ー'"〈:)_,` /       riヽ_(:)_i  '_(:)_/ ! ‐;-、   、__,._-─‐ヽ. ,.-'、 
      /`゙i u       ´    ヽ  !        !{   ,!   `   ( } ' (:)〉  ´(.:)`i    |//ニ ! 
    _/:::::::!             ,,..ゝ!       ゙!   ヽ '      .゙!  7     ̄    | トy'/ 
_,,. -‐ヘ::::::::::::::ヽ、    r'´~`''‐、  /        !、  ‐=ニ⊃    /!  `ヽ"    u    ;-‐i´ 
 !    \::::::::::::::ヽ   `ー─ ' /             ヽ  ‐-   / ヽ  ` ̄二)      /ヽト、 
 i、     \:::::::::::::::..、  ~" /             ヽ.___,./  //ヽ、 ー         

自分は結構PHPに詳しいと思ってたのだが、あまりに基本的とも言えるこれを知らなかった。これが原因のバグとかいっぱいありそう(;´д⊂)
(参考: http://jp2.php.net/manual/ja/types.comparisons.php
(参考: http://carpia.hp.infoseek.co.jp/2ch_MMR/MMR-AA/AA-nandatte.htm