【PHP】PHPエラー Warning:Invalid argument supplied for foreach() の解決方法
私もよくやってしまう、このエラー
内容は「配列が空ですよ」ということです。
いくつかの回避方法がありますのでご紹介します。
配列じゃなければforeachしません。とういうことです。
一番ポピュラーなやり方かと思います。
PHPではarray型へのキャストが用意されており、スカラー変数ならその値をひとつの要素とした配列に、配列ならそのままの状態にキャストすることができます。
要するに、配列じゃなかったら強制的に配列にするということです。
ほかにも、count関数等で確認する方法等がありますが、この2つを覚えておけば良いかと思います。
内容は「配列が空ですよ」ということです。
いくつかの回避方法がありますのでご紹介します。
1.is_array(mixed var)
これは、与えられた変数が配列かどうかを検査します。配列じゃなければforeachしません。とういうことです。
一番ポピュラーなやり方かと思います。
if(is_array($array)){ foreach($array as $itm){ //命令文 } }
2.(array)array型へのキャスト
ちょっと、乱暴なやり方なのですが、コードがかなりスマートになります。PHPではarray型へのキャストが用意されており、スカラー変数ならその値をひとつの要素とした配列に、配列ならそのままの状態にキャストすることができます。
要するに、配列じゃなかったら強制的に配列にするということです。
foreach((array)$array as $itm){ //命令文 }
ほかにも、count関数等で確認する方法等がありますが、この2つを覚えておけば良いかと思います。
著者:poroa | 投稿日:2016年09月16日 | カテゴリ:PHP