プロが教える店舗&オフィスのセキュリティ対策術

Warning: Invalid argument supplied for foreach() inを消したい
テストサーバーでは、問題ないのですが、本サーバーで上記のエラーが
foreachの部分で出てしまいます。
エラーが出るだけで他の部分の表示には問題なのですが、
おそらくどこまでのエラーを表示するかの設定がサーバーによって
違うからだと思うのですが、
phpコード側で上記のエラーを表示するかしないかを変更することは
できませんでしょうか?
よろしくお願いいたします。

A 回答 (2件)

foreach() に指定する変数が宣言されていない場合などにでますね。


変数の前に明示的に(array)と書くとエラーがでなくなりますよ

foreach($xxx as $yyy){}

foreach((array) $xxx as $yyy){}

ちなみに環境によってでる場合と出ない場合があるのは、
どのレベルまでエラーをだすかというポリシーの違いによるものです
それを吸収するにはerror_reporting()などでレベルをあわせることになります。

http://www.php.net/manual/ja/function.error-repo …
    • good
    • 0
この回答へのお礼

ありがとうございます!
コードは先方支給でかえれなかったのでエラー出力レベルをかえるようにします!

お礼日時:2010/07/30 15:48

Warning: Invalid argument supplied for foreach


が出るのは、そういう実装をしているせいよ。
テストサーバーで警告が出ない理由は分からないけど、
例えばphpのバージョンが違うとか
設定が違うとかあるのね。

どちらにせよ、この警告が出るのは
間違いなくコードに問題があるからよ。

例えばforeachで扱っている配列が
特定の条件のときに配列にならない
とかね。
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2010/07/30 15:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!