みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Warning: Invalid argument supplied

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

投稿日時 - 2010-07-30 14:37:17

QNo.6075040

すぐに回答ほしいです

質問者が選んだベストアンサー

foreach() に指定する変数が宣言されていない場合などにでますね。
変数の前に明示的に(array)と書くとエラーがでなくなりますよ

foreach($xxx as $yyy){}

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

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

http://www.php.net/manual/ja/function.error-reporting.php

投稿日時 - 2010-07-30 15:10:16

お礼

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

投稿日時 - 2010-07-30 15:48:53

ANo.1

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

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

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

例えばforeachで扱っている配列が
特定の条件のときに配列にならない
とかね。

投稿日時 - 2010-07-30 15:12:14

お礼

ありがとうございます!

投稿日時 - 2010-07-30 15:49:49

あなたにオススメの質問