ホームページ  >  記事  >  バックエンド開発  >  PHPのin_array関数の使い方の紹介

PHPのin_array関数の使い方の紹介

不言
不言転載
2019-03-11 16:18:323229ブラウズ

この記事は、PHP の in_array 関数の使用法を紹介します。これには一定の参考値があります。必要な友人は参照してください。お役に立てば幸いです。

次のコードは true または false を出力すると思いますか?

1 <?php
2 $data = [6,9];
3 var_dump(in_array('06',$data));

今日、コードをデバッグしているときに、in_array の誤った使用によって引き起こされるバグを発見しました。 PHP では、配列は非常に強力なデータ構造です。公式では多数の配列操作関数が提供されています。よく使用されるのは in_array() です。配列に要素が含まれているかどうかを判断するためによく使用されます。ただし、関数を使用するときにその 3 番目のパラメータを無視すると、一種のバグが発生する可能性があります。
公式関数定義:

in_array (mixed $needle , array $haystack [, bool $strict = FALSE ] )
: bool

needle

required検索される要素

Haystack

検索される配列

Strict

このパラメータが true に設定されている場合、検索には厳密比較モードが使用されます。要素。つまり、検索時には、検索対象の要素と配列要素の値だけでなく、その型も比較されます。デフォルトは false です。

3 番目のパラメータが無視された場合、記事の冒頭の質問の出力は true になります。厳密な比較が使用されないため、関数は文字列と数値を処理するときに、比較のために文字列を整数/浮動小数点型に変換しようとします。たとえば、「12ax」は 12 に変換されます。次に、上記の「06」は 6 に変換されるため、出力は true になります。
最初、この関数に 3 番目のパラメータの設定があることに気付かず、どうしても望む結果が得られませんでした。

以上がPHPのin_array関数の使い方の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。