ホームページ  >  記事  >  バックエンド開発  >  PHPのin_array関数によって引き起こされるいくつかの考え

PHPのin_array関数によって引き起こされるいくつかの考え

高洛峰
高洛峰オリジナル
2016-11-29 11:47:33995ブラウズ

今日、PHP の in_array 関数の使い方がおかしいと思いました。必要な方は簡単に参照してみましょう。コードは次のとおりです。

$a=array("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 関数が常に続くわけではありません。私の思考ロジックは要素全体と一致していますか? それともデータ型を十分に理解していませんか?

同時に、配列の最初の要素が 0 の場合にも問題が発生することもわかりました。次の状況を参照してください。コードは次のとおりです。

$a=array(0, "m") ;

if(in_array('mc6',$a))

{

echo "====="

}// オープンソースコード phpfensi.com

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。