» home

PHPの比較演算子($a == $b)で注意が必要なとき

どこかで既出だとは思いますが。というより以前同じようにハマった記憶があるようなないような。

PHP: PHP 型の比較表 - Manual
マニュアルだとこのページ、以下のBlueShoesの方が見やすい、
BlueShoes: PHP Cheat Sheet
「comparison with ==」の表で”foo”との比較でtrueになる値が3つある。3つもある。

<?php
if (0 == 'foo') {
  echo "hello!\\n";
}
if (true == 'foo') {
  echo "hello!\\n";
}
if ('foo' == 'foo') {
  echo "hello!\\n";
}
[funaki@localhost]~/work% php test.php
hello!
hello!
hello!

えーーーー。って感じがします。

解説はマニュアルにもちゃんとあった。仕様です。
PHP: 文字列 - Manual

整数値を文字列と比較する際、文字列が 数値に変換されます。

true/falseのときは===,!==を使うようにしていましたが文字列を比較するときも、strcmpか型比較付===を使うべきなのですね。。

Rubyに浮気宣言してから早2ヶ月。進展なし。
今週、Rubyに浮気します

By: funaki | 2007年5月10日 | いじる | Trackback | Comments [RSS 2.0]

コメントはまだありません。 »

RSS feed for comments on this post. TrackBack URI

コメントはお気軽にどうぞ

↑top