Invalid argument supplied for foreach() …への対処

kensuke-iizuka 12views 更新:2015年12月21日

型が配列でない変数でforeachを実行しようとするとタイトルのエラーが出てしまいます。 foreach文が使えるのは配列かオブジェクトの時だけだから当然、エラーも出るだろうということで

foreach ($arr as $item){
    処理
}

を下のコードのように

foreach ((array)$arr as $item){
    処理
}

というように強制的に配列に変換してやるという技です。シンプルでnullチェックとかしなくていいという方法です。 ただ、後々、自分で修正加えるときとか逆に面倒なことになりそうなのできちんと対処したほうがいいのかなと思いましたが、とりあえず動いてくれ−ってときには良いと思います。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません