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というエラーが出たとき | テックブログ

Share on Twitter
関連記事
サクラエディタでPHPの文字色を変更する方法
サクラエディタでPHPの文字色を変更する方法
phpで指定した値が配列に存在するか調べる方法
phpで指定した値が配列に存在するか調べる方法
PHPでメール送信を実装する方法
PHPでメール送信を実装する方法