[PHP-users 32708] Re: 文字列と文字列の比較であっても「==」を使ってはならない

kamiya d djr_kamiya @ hotmail.com
2007年 10月 8日 (月) 21:26:09 JST


こんにちは
神谷です。

== で比較してしまうと
<?php
$str_A = '';
$str_B = NULL;
$str_C = 0;
$str_D = '0';
var_dump( $str_A == $str_B );
var_dump( $str_A == $str_C );
var_dump( $str_A == $str_D );
var_dump( $str_C == $str_D );
?>
の結果のように、AとDは不一致なのに、AとC、CとDは一致するという矛盾
もあるんですよね。
ソース見てないので感覚的にしか捉えていませんが、同一型(文字型)で
あっても、両辺ともに数値型として認識できる場合は、数値型にキャストし
ている(数値型が優先される)と感じています。
2年以上前に、このへんでイタイ目を見ました。

この辺は、自分で体験しないとなかなか実感できない部分ではないかと思います。
でも、結構私も色々な場合に == で比較してしまいます。
それが都合が良かったり悪かったり・・・

_________________________________________________________________
Webページを見ながらスムーズ検索「サーチペイン」搭載のMSN版IE7をダウンロード 
http://promotion.msn.co.jp/ie7/ 



PHP-users メーリングリストの案内