この前気付いたのですが,PHPでは何と驚くべきことに0 == ‘hoge’はtrueになります からくりは文字列と数値を比較すると文字列を数値型にキャストして比較しようとします PHPの仕様では’14′や’14hoge’は14にキャストされるというように数字から始まっていたらそこが利用されます しかし’hoge’は数字から始まっていないのでキャストすると0になってしまうのです これによって0 == ‘hoge’がtrueという直感に反した動きをするわけです では他の言語ではこんなこと起こりうるのか簡単に見てみたいと思います これから紹介する言語の中では最もPHPに近い挙動をします というのもPHPと同じ結果になります ただしPerlは==は数値としての比較,eqが文字列としての比較という区別があります そのため0 == ‘hoge’を比較するとPHPと同じ理由によってtrueにはなりますが