くまきち

山と旅と家族が大事。
でも激しい物欲が理性と財布のタガを飛ばす
最近は自転車も乗ってる

PHP: array_search() ではまる

2009-02-26 14:47:16 | SEまわり
PHP の array_search() 関数(配列中から特定の値を見つける)ではまる。

  $ary = array ( 'hoge');
  if ( array_search("hoge", $ary) ) { echo "みつけたよ"; }

と言う処理をすると、何も表示されない。

理由は、array_search() の戻り値が「キー」だから。

上記 $ary は、実際は、

  [0] => 'hoge'

として格納されているため、発見した場合の戻り値は "0" なので、if 文の条件式評価は FALSE と同じになってしまう。

これでしばらく分からなかった。

対応は、

  if ( array_search("hoge", $ary) !== FALSE ) { echo "みつけたよ";}

とする。 型も含めてきちんと評価すれば良い。