[PHP-users 6826] ==って・・

shin1 nomoto php-users@php.gr.jp
Fri, 12 Apr 2002 03:55:11 +0900


  こんばんは。野元です。

Perlはよく使ってるのですが、PHP歴はまだ浅いので
PHPの比較演算子について教えてください。

$a = "0";
if($a == ""){
  echo "EQ:".$a;
}else{
  echo "NE:".$a;
}
では NE:0 となるのですが、

$a = "100";
$a = $a - 100;
if($a == ""){
  echo "EQ:".$a;
}else{
  echo "NE:".$a;
}
では EQ:0 となりますよね。

先の場合は string 対 string で比較されてて、
後の場合は integer 対 integer で比較されてる
ように思うのですが、Perlのeq演算子のように
確実に string 対 string として比較する演算子は
無いのでしょうか。

変数の内容の型によって同じ ==演算子の結果が
ころころ変わってくるので、デバッグに時間が
かかってしまいます。echoで表示したら同じ0ですし。

確実に""と比べたいときは strval($a) == "" とか
strcmp($a, "")とかやるしかないのでしょうか。

他に、ソースが長くならない良い記法は無いですか?