文字列比較の注意点 == は駄目デス
2008 年 7 月 31 日 – 10:55 AM文字列の比較で、下記のソースをご覧ください。
if ($abc== $xyz) {
echo “Ok!” ;
} else {
echo “NG!”;
}
仮に $abc には、文字列で、”uzula” がセットされていたとします。
$xyz には 数値の 0 がセットされているとします。
この場合、表示されるのは Ok! です。
$xyz が文字列で定義されていれば問題ない話ですが、うっかり数値を入れてしまうと数値の比較となるので、 uzula は 0 になり 0 == 0 となるわけです。
同様に、$abc = “2ab” の場合、$xyz = 2 で $abc == $xyz が成立します。
まあ普通はこんなことしないので問題ないと思いますが、文字列比較は下記のようにすれば安全です。
if(strcmp($abc,$xyz) == 0) {
echo “Ok!” ;
} else {
echo “NG!”;
}

