PHPの文字列比較の穴

先日、あるプログラム内で妙な挙動がするのを発見。

『0E2』という文字列と『0E3』と文字列が同じだとなってしまう。

いやいや、そんなわけないだろう。で、いろいろ調べてみたところ、PHPのマニュアルにこんなことが書いてあった。
 

整数値を文字列と比較する際、文字列が 数値に変換されます。
数値形式の文字列を比較する場合、それは整数として比較されます。
これらの ルールは、 switch 文にも適用されます。

なるほど。ということで、文字列を比較するときは、「===」か「strcmp」を使うようにしよう。

※参考
素晴らしき自動的な世界~或いは「型のない」世界~ – がるの健忘録

スポンサーリンク
Googleレクタングル広告 www.labs816.com 336×280
Googleレクタングル広告 www.labs816.com 336×280

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です