【PHP】in_array関数使用時の注意点一覧【wordpress】

  • 2021年5月6日
  • 2023年5月10日
  • PHP
PHP

PHPやWordpressで使用する機会の多い「in_array」関数の注意点をまとめました。
注意点は以下の2つ

  • in_array関数は必ず第3引数を入力する
  • 事前にisset関数を使って&&で結ぶ

それぞれを見ていきましょう。

in_array関数は必ず第3引数を入力する

まずin_array関数ですが、引数は3つとなっています。

in_array(引数1,引数2,[引数3])

このうち、引数1と2は必須で、引数3は任意です。
それぞれ

  1. 検索する文字列
  2. 検索対象の配列
  3. 型も見るかどうか

という設定内容です。
引数の1と2は設定すると思うのですが、3も設定してください。
デフォルトでは引数3はfalse、つまり型を見ないとなっています。

これでは正確な比較ができないので、「true」を設定してあげてください。
in_arrayをチェックボックスなどに使う場合も同等です。

事前にisset関数を使って&&で結ぶ

in_array関数はPHPにおいてWarningを吐き出す場合があります。
Warningはエラーではないものの、文字が一気に表示されるのでびっくりしてしまいます。

エラーの内容は日本語にすると

in_array関数の第2引数には配列を指定してね!

といったものです。

特にチェックボックスの結果などを入れている場合に起こります。
これを回避するのは単純で、in_array関数の前にisset()を使ってPOSTやGETの結果をチェックしてください

これをすることで、Warningされなくなります。
POSTやGETの入力値は基本的に信用できないので、issetで囲むのは基本だったりします。