[PHP-users 32841] if($input=="error")の不思議
Kimio Mizuguchi
mizuguchi.kimio @ ytv.home.ne.jp
2007年 11月 10日 (土) 17:00:39 JST
php5で次のような簡単なプログラムを作ったのですが、動作が期待と異なります。
どうしてそうなるのかわかりません。
<?php
function isFailed($input){
if($input=="error")
{
return True;
}else{
return False;
}
}
if(isFailed(0)){
print("TRUE");
}else{
print("FALSE");
}
?>
期待する実行結果はFalseですが、実際はTrueになります。
isFailed関数は、自前の幾つかの関数でエラーが発生した場合に"error"を返す
ように仕様を共通化しておいた上で、それらの関数の結果を判定するために作ろ
うとしたものです。
if($input == "error")をif(is_string($input) && $input == "error")にすれ
ば、期待の動作になりますので、そのように変更して使っているのですが、どう
もすっきりしません。どこが、間違っているのでしょうか。お分かりの方はご教
示ください。
PHP-users メーリングリストの案内