- ベストアンサー
Warning: Invalid argument supplied
Warning: Invalid argument supplied for foreach() inを消したい テストサーバーでは、問題ないのですが、本サーバーで上記のエラーが foreachの部分で出てしまいます。 エラーが出るだけで他の部分の表示には問題なのですが、 おそらくどこまでのエラーを表示するかの設定がサーバーによって 違うからだと思うのですが、 phpコード側で上記のエラーを表示するかしないかを変更することは できませんでしょうか? よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
foreach() に指定する変数が宣言されていない場合などにでますね。 変数の前に明示的に(array)と書くとエラーがでなくなりますよ foreach($xxx as $yyy){} ↓ foreach((array) $xxx as $yyy){} ちなみに環境によってでる場合と出ない場合があるのは、 どのレベルまでエラーをだすかというポリシーの違いによるものです それを吸収するにはerror_reporting()などでレベルをあわせることになります。 http://www.php.net/manual/ja/function.error-reporting.php
その他の回答 (1)
- askaaska
- ベストアンサー率35% (1455/4149)
回答No.2
Warning: Invalid argument supplied for foreach が出るのは、そういう実装をしているせいよ。 テストサーバーで警告が出ない理由は分からないけど、 例えばphpのバージョンが違うとか 設定が違うとかあるのね。 どちらにせよ、この警告が出るのは 間違いなくコードに問題があるからよ。 例えばforeachで扱っている配列が 特定の条件のときに配列にならない とかね。
質問者
お礼
ありがとうございます!
お礼
ありがとうございます! コードは先方支給でかえれなかったのでエラー出力レベルをかえるようにします!