ボクの覚え書き – CentOSでサーバ構築 サーバー構築やプログラミングの覚え書き

文字列比較の穴

03.26.2008 · Posted in 覚え書き

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

if ( "0E2" == "0E3" ){
    // ここに入ってくる

『0E2』という文字列と『0E3』と文字列が同じだとおっしゃる。

いやいや、そんなわけないだろう。

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

整数値を文字列と比較する際、文字列が 数値に変換されます。
数値形式の文字列を比較する場合、それは整数として比較されます。
これらの ルールは、 switch 文にも適用されます。
http://www.php.net/manual/ja/language.operators.comparison.php より抜粋)

なるほど。

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

もっと詳しく知りたかったら、↓ココを参照。
http://d.hatena.ne.jp/gallu/20061108/p1
http://d.hatena.ne.jp/teracc/20061224#1166973823

Tags:

Comments are closed