#バドシス 〜 日々のことを続く限り書いてみようと思って 〜

頑張って日々のことを書いていこうと思います。

PHPのforeachで「Warning: Invalid argument supplied」がでる。

f:id:mizominton:20161011162045p:plain

 

よくこれでググってしまうので戒めとして記事にしておきます。

Warning: Invalid argument supplied

グーグル翻訳にかけると

警告:無効な引数が指定されて


 

と怒られます。

 

foreachとは

PHP: foreach - Manual

(PHP 4, PHP 5, PHP 7)

foreach は、配列を反復処理するための便利な方法です。 foreach が使えるのは配列とオブジェクトだけであり、 別のデータ型や初期化前の変数に対して使うとエラーになります。

foreachが使えるのは配列とオブジェクトだけであり、 別のデータ型や初期化前の変数に対して使うとエラーになります。

 

はい。すいませんでした。

解決方法

配列かどうかチェックを入れる

 

if(is_array($variable)){
 foreach ($variable as $key => $value) {
  # code...
 }
}

 

配列としてキャストする

foreach ((array)$variable as $key => $value) {
 # code...
}

 

よし。多分これでしばらく忘れないぞ!

 

 

mizominton.hatenablog.jp