前の記事 ≪:Google Chart API.を超簡単に扱えるラッパークラスライブラリ「gchartphp」が...
次の記事 ≫:ZDNet Japanがプログラマ向けのサイト「builder」を公開

PHPで、文字列と数値0の比較は等価になるようです

2007年12月14日-はてなブックマーク

スポンサード リンク
[PR] 英単語を忘却曲線アプリを使って超効率よく記憶する方法
zestyping: Why PHP should never be taught.
Suppose A equals B, and also B equals C. Any reasonable person would expect that A equals C, right?

PHPで、文字列と数値0の比較は等価になるようです。
例えば、次のコードを実行すると「equal」が出力されます。

<?php

$a = 0;
$b = "str";

if ($a == $b) {
    echo "equal";
} else {
    echo "not equal";
}

?>

更に、0と、undefined な変数を比較しようとすると、それも等価になります。
以下はその例で、実行結果は「equal」が出力されます。

<?php

$a = 0;

if ($a == $b) {
        echo "equal";
} else {
        echo "not equal";
}

?>

覚えておかないと、思わぬところでバグ混入となってしまいそうなので、覚えておきましょう。

追記)ちなみに、型のチェックも行う比較は「===と==、!=と!==の違い - phpspot」を参照下さい。

スポンサード リンク

By.KJ : 2007年12月14日 10:08 livedoor Readerで購読 Twitterに投稿

間違いの指摘をしていただける方はメール、あるいはTwitter/FBでお願いします(クリック)