[PHP-users 26261] Re: in_array の挙動について

kotaropan @ yahoo.co.jp kotaropan @ yahoo.co.jp
2005年 7月 22日 (金) 02:16:44 JST


康太朗です。

PHPの構文および、比較動作する関数は、
型チェックをしない比較が標準になっていると思って作成しないと、
思わぬ落とし穴に転んでしまいます。
switch文などは、典型的な例ですね。

if ( "a" == 0 )    echo "この文は表示されます";
が、標準だと思っておくほうが間違いないとおもいます。
型チェックがあるものを発見したら、リストアップしておくと便利でしょう。

StrictCmp::in_array()、などを作られるか、
例外処理を別に入れられたらどうですか?



> 表題の件ですが、 in_array の挙動で納得がいかないので教えて下さい。
>
> 以下のようなプログラムを作成し、実行すると、
>
> --- test.php ---
> <?
> $ary = array("a","b","c");
> var_dump( in_array( 0 , $ary ) );
> ?>
> --- test.php ---
>
> $ php ./test.php
> bool(true)
>
> となるのですが、これは正しい動作なのでしょうか?
> ちなみに 0 を "0" や false に変更すると
> bool(false)
> になります。
>
>
> PHPのバージョンは
> PHP 5.1.0b2 (cli) (built: Jul  5 2005 01:00:58)
> です。
>
> よろしくお願いいたします。
>


------------------------------
おいしいパンが焼けたらと思っている、
将来パン屋さんになりたい康太朗でした kotaropan @ yahoo.co.jp


__________________________________
Save the earth
http://pr.mail.yahoo.co.jp/ondanka/



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