PHP:Invalid argument supplied for foreach 解决办法

PHP:Invalid argument supplied for foreach 解决办法

问题Warning: Invalid argument supplied for foreach() in

原语句:

  1. foreach($extcredits as $id => $credit)
  2. {
  3.          if($credit['ratio'])
  4.          {
  5.                  $exchcredits[$id] = $credit;
  6.          }
  7. }

解决方案,改为:

  1. if(is_array($extcredits))    //add
  2. {                           
  3.          foreach($extcredits as $id => $credit)
  4.          {
  5.                   if($credit['ratio'])
  6.                   {
  7.                               $exchcredits[$id] = $credit;
  8.                   }         
  9.         }
  10. }   //add

或改为:

  1. foreach((array)$extcredits as $id => $credit)
  2. {
  3.          if($credit['ratio'])
  4.          {
  5.                  $exchcredits[$id] = $credit;
  6.          }
  7. }

造成这个错误的原因多数是因为后台升级、编码转换造成的!foreach() 传数据的时候,数据是空的,可以在前面加上一个判断,当数据不为空的时候,再执行foreach。
如果对PHP熟悉的人,可以直接找到出错的地方,分析出错信息是对哪个数据库表操作时造成的(一般都是论坛的基本数据表),然后,找到相应表的原版数据导进去,问题可解决。
如果对PHP不熟悉的人,可以按出错信息提示的位置,按照上面的修改方法进行修改,问题可解决。

Leave a Comment

You must be logged in to post a comment.