今日、PHP の in_array 関数には奇妙な使用法があることに突然気づきました。必要な友人が簡単に参照できるように、この使用法を見てみましょう。
コードは次のとおりです | コードをコピー |
$a=配列("1,2,3","4"); if(in_array(1,$a)){ echo "条件が成立しました"; } |
この条件は確かに成立します。私の思考ロジックによれば、上記の条件はパラメータ1の値が「1、2、3」でその和が4の場合にのみ成立しますが、不思議なのは実際に成立することです。その後、Battlefield は次の状況をテストしました:
コードは次のとおりです | コードをコピー |
$a=array("a,2,3","4"); if(in_array('a',$a)){ echo "条件が満たされていません"; } |
これは真ではありません。最初のテスト ケースでは、パラメーター 1 が「1」と書かれている場合、条件も真ではありません。バトルフィールドの結論:
PHP では、最初のパラメータが数値 (引用符で囲まれていない数値) で、2 番目の配列パラメータにその数値で始まる文字列が含まれている場合、最初のパラメータが 2 番目のパラメータの完全な要素であるかどうかは関係なく、true 値を返します。 。言い換えれば、in_array 関数は毎回私の思考ロジックに従って要素全体と一致しないのでしょうか、それともデータ型を十分に明確に理解していないのでしょうか?
同時に、Battlefield は、配列の最初の要素が 0 の場合にも問題が発生することを発見しました。次の状況を参照してください。
コードをコピー | |
$a=配列(0,"m");
if(in_array('mc6',$a)) |