• ベストアンサー

Warning: Invalid argument supplied

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

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

foreach() に指定する変数が宣言されていない場合などにでますね。 変数の前に明示的に(array)と書くとエラーがでなくなりますよ foreach($xxx as $yyy){} ↓ foreach((array) $xxx as $yyy){} ちなみに環境によってでる場合と出ない場合があるのは、 どのレベルまでエラーをだすかというポリシーの違いによるものです それを吸収するにはerror_reporting()などでレベルをあわせることになります。 http://www.php.net/manual/ja/function.error-reporting.php

trfnc223
質問者

お礼

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

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

Warning: Invalid argument supplied for foreach が出るのは、そういう実装をしているせいよ。 テストサーバーで警告が出ない理由は分からないけど、 例えばphpのバージョンが違うとか 設定が違うとかあるのね。 どちらにせよ、この警告が出るのは 間違いなくコードに問題があるからよ。 例えばforeachで扱っている配列が 特定の条件のときに配列にならない とかね。

trfnc223
質問者

お礼

ありがとうございます!

関連するQ&A