PHPで「in_array() expects parameter 2 to be array…」エラーが表示された時の対処法
PHPでコーディング中に、「Warning: in_array() expects parameter 2 to be array, string given in〜」というエラーが表示された時の解決方法の備忘録です。
エラーの出るコード
以下が、エラーが表示されたコードです。
<?php if(in_array($value, $license)) echo('checked'); ?>
「in_array()」で$value
の値が、$license
に含まれている場合「checked」を出力するif文です。
エラーの原因と解決策
以下が、実際に表示されたエラーです。
エラーが表示された原因は、型が配列ではない変数($license)を配列として処理しているためでした。
「in_array()」に設定する2番目の引数は、配列である必要があります。
そこで、変数$license
の直前に「(array)」を記載します。
<?php if(in_array($value, (array)$license)) echo('checked'); ?>
$license
が配列として処理されるようになり、エラーが解消されました。
参考
PHPでin_array() expects parameter 2 to be arrayというエラーが出たとき | テックブログ