配列に特定の文字列を含むか判定する関数 in_array
の利用例を具体的なコードを交えて紹介します。
まずは in_array を使ってみる
<?php
$fruits = ['apple', 'orange', 'banana'];
var_dump(in_array('apple', $fruits, true)); // trueを返すはず
var_dump(in_array('strawberry', $fruits, true)); // falseを返すはず
実行してみると
$ test.php
bool(true)
bool(false)
予想通りの結果を得ることができます。
in_arrayを使うときは黙って第三引数を付けること
Qiitaでも話題の記事ですが、第三引数をつけないと痛い目に合うことになります。
私もPHPを使い始めた頃は何度痛い目あったことやら。
第三引数の役割
三番目のパラメータが true に設定された場合、 in_array() は型も確認するようになります。
デフォルトは false であるため、第三引数に true をセットしないと型を見ることなく比較することになります。
簡単な実験をしてみます。
<?php
$numbers = [0, 1, 2, 3, 4, 5];
var_dump(in_array(3, $numbers)); // trueを返すはず
var_dump(in_array('犬', $numbers)); // falseを返すはず
このコードを実行してみると
$ test.php
bool(true)
bool(true)
“犬”は $numbers にいないワンッ!!
となり、in_array
を使う時は黙って第三引数をつける意味が理解できました。