プログラムを書いていて、少しつまづいた所があったので投稿。
以下のコードを実行すると、
$hogeにりんご以外の値を代入するとOKを返して、in_arrayで試した場合はりんごでもOKを返した。
りんごの時にarray_searchで返す値が原因かもと思い調べてみたところビンゴ。
上記はNGを返す。
型がなんであってもifに「0」が入るとfalseと判定してしまいelseに処理が行ってしまうようだ。
よって下記コードで対応した。
「0」が入る可能性があるときは気をつけなきゃ。
以下のコードを実行すると、
$array = array('りんご' , 'ごりら', 'らっぱ', 'ぱんだ', 'だちょう');
$hoge = 'りんご';
if(array_search($hoge , $array)){
echo 'OK';
}
else{
echo 'NG';
}
なぜかNGを返す。$hogeにりんご以外の値を代入するとOKを返して、in_arrayで試した場合はりんごでもOKを返した。
りんごの時にarray_searchで返す値が原因かもと思い調べてみたところビンゴ。
$hoge = '0';
if($hoge){
echo 'OK';
}
else{
echo 'NG';
}
上記はNGを返す。
型がなんであってもifに「0」が入るとfalseと判定してしまいelseに処理が行ってしまうようだ。
よって下記コードで対応した。
$array = array('りんご' , 'ごりら', 'らっぱ', 'ぱんだ', 'だちょう');
$hoge = 'りんご';
if(array_search($hoge , $array) > -1){
echo 'OK';
}
else{
echo 'NG';
}
「0」が入る可能性があるときは気をつけなきゃ。












