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

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


康太朗です。

> in_arrayの3番目の引数として true を指定すれば良いかと思います。

in_arrayも strict 動作のオプションあったんですね。
勉強になりました。



> 高橋と申します。
>
>> 井上です。
>> お世話になります。
>>
>> 表題の件ですが、 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)
>> になります。
>>
> 恐らく型変換されているためと思います。
> in_arrayの3番目の引数として true を指定すれば良いかと思います。
>
> 型変換についてはマニュアルの型>文字列の文字列への変換にあるように
> 文字列が有効な数字では無いためにゼロになるのかと。
> 例えば同じページの下のほうにあるサンプルで
> <?php  if (0=='yes') echo "no!!!";  ?>
> これも真となります。
> ちなみに
> <?php  if (0==='yes') echo "no!!!";  ?>
> は偽となります。
>
>

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


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



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