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も設定してください。
デフォルトでは引数3はfalse、つまり型を見ないとなっています。
これでは正確な比較ができないので、「true」を設定してあげてください。
in_arrayをチェックボックスなどに使う場合も同等です。
事前にisset関数を使って&&で結ぶ
in_array関数はPHPにおいてWarningを吐き出す場合があります。
Warningはエラーではないものの、文字が一気に表示されるのでびっくりしてしまいます。
エラーの内容は日本語にすると
in_array関数の第2引数には配列を指定してね!
といったものです。
特にチェックボックスの結果などを入れている場合に起こります。
これを回避するのは単純で、in_array関数の前にisset()を使ってPOSTやGETの結果をチェックしてください
これをすることで、Warningされなくなります。
POSTやGETの入力値は基本的に信用できないので、issetで囲むのは基本だったりします。