in_Arrayの使用中に発生した問題

567 ワード

in_arrayこの関数は、配列に値が存在するかどうかを確認するために使用されます.実際に使用すると、このような問題が発生する可能性があります.
$test = 'a';
$arr = [0,1,2,3,4,5,6,7,8,9];
if(in_array($test, $arr)){
    echo "in";
}else{
    echo "no";
}

このとき我々が得た結果はinがこの結果を得た理由はphpが数字と文字列を比較する際に文字列を数字に変換して比較し,文字列aが0に変換されて欲しくないという結果になったためであり,厳密な比較モードで3番目のパラメータをtrueに追加する
$test = 'a';
$arr = [0,1,2,3,4,5,6,7,8,9];
if(in_array($test, $arr, true)){
    echo "in";
}else{
    echo "no";
}

No phpを返す柔軟性は時々小さな問題をもたらすので、普段は注意しなければなりません.