[PHP-users 32844] Re: if($input=="error")の不思議
N,Kaneshige
ia @ mail24.jp
2007年 11月 10日 (土) 17:41:55 JST
こんにちは、金重です。
php4でも同様の結果になります。仕様のようですね。
以下のようにしてはいかがでしょうか?
if($input==="error")
【参考】PHP マニュアル -> 付録 P. PHP 型の比較表
http://search.net-newbie.com/php/types.comparisons.html
07/11/10 に Kimio Mizuguchi<mizuguchi.kimio @ ytv.home.ne.jp> さんは書きました:
> 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 mailing list PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
>
--
金重 宣俊
PHP-users メーリングリストの案内