PHPの比較の素晴らしさ加減は正常 @ はてな匿名ダイアリー
1と2は仕様と言われれば個人的には受け入れられる。
3あたりからチト厳しい。せめてlintで警告が欲しい。「===」と書いたつもりが「==」だった、というケアレスミス対策に。
4は対称性が崩れる分、覚える事が増えて面倒だ。暗黙の型変換がこういう仕様だというなら、それを明示的にやる関数 / 演算子があった方がよいと思う(既にあるのなら、教えてくださいPHPのえろい人)。
ちなみに、追加で確認してみたら
"hoge" == true かつ "hoge" == 0 かつ true != 0
だったので、「==」は数値比較演算子というよりも、自動的に型変換する演算子(かつ、CやJavaとは型変換の規則が異なる)として覚えた方が正確なのではないか。
http://anond.hatelabo.jp/20090617164618のコード、
if (strcmp("0x0A", "10") == 0) {
でないと、チュッされちゃうのでは……。 strcmpは等しい時に0を返すので。
Trackback URL (right click and copy shortcut/link location)