做php时,总是报错 Invalid argument supplied for foreach(),求指点

作者&投稿:爨弦 (若有异议请与网页底部的电邮联系)
php高手来!!!运行时总是出警告Warning: Invalid argument supplied for foreach,实在解决不了。~

Warning: Invalid argument supplied for foreach()
问题Warning: Invalid argument supplied for foreach() in 完善解决方案
将报错的语句做如下修改(例):




QUOTE:
foreach($extcredits as $id => $credit)
{
if($credit['ratio'])
{
$exchcredits[$id] = $credit;
}
}

改为


QUOTE:
if(is_array($extcredits)) //add
{
foreach($extcredits as $id => $credit)
{
if($credit['ratio'])
{
$exchcredits[$id] = $credit;
}
}
} //add




QUOTE:
foreach((array)$extcredits as $id => $credit)
{
if($credit['ratio'])
{
$exchcredits[$id] = $credit;
}
}
造成这个错误的原因多数是因为论坛升级、编码转换造成的!
如果对PHP熟悉的人,可以直接找到出错的地方,分析出错信息是对哪个数据库表操作时造成的(一般都是论坛的基本数据表),然后,找到相应表的原版数据导进去,问题可解决。
如果对PHP不熟悉的人,可以按出错信息提示的位置,用2楼的修改方法进行修改,问题可解决。

if(is_array($M_layout ) && !empty($M_layout )){
foreach($M_layout as $layout){


}
}
加个判断语句

if($wo_est_bench_hours==0){}
else
{

          foreach ($wo_est_bench_hours[$val] as $key1=>$val1) {
               if (is_null($value)) {
               $array[$key] = 0;
               }
               }
}

按照我这么写试试,还要确认$wo_est_bench_hours[$val] 要是个数组 并且$val是存在的。

希望我的回答对你有帮助



foreach 遍历的是数组,你的那个遍历的 可能不是数组,所以会报错,在前面加一层判断,如果是is_array,在foreach

不是说里面的值没判断, 而是说要foreach的值没有做判断. 要判断下$wo_est_bench_hours这个是不是数组, 然后再循环..is_array($wo_est_bench_hours)

if(is_array($wo_est_bench_hours[$val] )){
foreach ($wo_est_bench_hours[$val] as $key1 => $val1) {
if (is_null($value)) {
$array[$key] = 0;
}
}
}


PHP 高手请教 新手<<<EOF总是出现错误 改了好多为什么 总是出现语 ...
如果不遵守该规则导致结束标识不"干净",PHP 将认为它不是结束标识符而继续寻找。如果在文件结束前也没有找到一个正确的结束标识符,PHP 将会在最后一行产生一个解析错误。Heredocs 结构不能用来初始化类的属性。自 PHP 5.3 起,此限制仅对 heredoc 包含变量时有效。

高手请帮忙看看这段php代码有什么问题,老是报错!谢谢啦!
3.将 if (is_writable($filename)) 改为 if (is_writable($filename) or !file_exists($filename)) ,否则如果文件datafeed.xml没有被创建时报错(“文件不可写”,且也不会创建该文件)。4.你的xml文件结构描述有问题,根据自己的需要修正。参考代码:(已在Win+Apache+MySQL+PHP下验证通过)...

ThinkPHP报错syntax error,unexpected 求解答
这个是你的代码语法错误了,不是thinkphp的错误,找到报错页面所说的文件,然后找到指定的行数,检查语法是否正确即可。黑马程序员的PHP是国内最早开设的真正人工智能课程。课程全面系统,紧跟时代潮流。

...在打开php的oci8_11g的 扩展时候,总是报错,有什么方法可以解决啊?报 ...
把那个扩展放到C:\/windows\/system32里试试。如果还不行。可能是由于这个扩展本身引用了其它的扩展。而被引用的扩展又不存在。所以无法加载。这就要找到他所引用的扩展然后放进去。

CKFinder(php版)上传图片报错,总是显示500的错误,请问该怎么解决这个...
这个可以看看错误日志,看具体的错误信息。我猜测是保存上传文件的文件夹没有写权限,或者不存在。

thinkphp5 连访问数据库时报错utf-8编码错误
thinkphp5连访问数据库时报错utf-8编码错误,出现中文乱码的原因就是字符编码不统一,出现中文乱码需要添加如下代码。在D:\\phpStudy\\PHPTutorial\\MySQL下的my.ini中的mysqld下加如下语句:character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci 示例代码如下:...

PHP SSL 验证证书的时候报错
可能是你的ssl证书不不受信任,你可以去申请一个全球可信的ssl证书来使用,也有免费的可信ssl,比如wosign freessl,startssl等。

php 遇到mysql_connect()函数时报错?
从这个错误的信息来看 是找不到mysql_connect()函数,为什么会出现这个原因呢?我们来看看PHP一般找函数定义的目录:1、在PHP的配置文件中,php.ini文件 找到这句:extension_dir = "php安装目录\\ext"然后,注释掉下面两行(分号表示注释)extension=php_mysql.dll;extension=php_mysqli.dll;2、apache...

谁能告诉我一下下面这个php代码有没有错误?我运行的时候总是报错
很明显的错误啊,而且也给你说得很明白了,如果要使用session,必须在文件第一行加入<?php session_start(); >而且必须前面不能有空行,初学者很容易犯的错误,有问题hi我吧

php代码运行报错。 如图,要怎么改,谢谢。
应该 是php语法问题 把17到26行改写一下 if(xxx){ echo 'xxxx';}else{ echo 'xxxx';}?>

江夏区18189112344: 做php时,总是报错 Invalid argument supplied for foreach(),求指点 -
宏谭利倍: if($wo_est_bench_hours==0){} else { foreach ($wo_est_bench_hours[$val] as $key1=>$val1) {if (is_null($value)) {$array[$key] = 0;}} }按照我这么写试试,还要确认$wo_est_bench_hours[$val] 要是个数组 并且$val是存在的.希望我的回答对你有帮助

江夏区18189112344: PHP总是报错没有这个函数为什么 -
宏谭利倍: 打开php.ini,找到;extension=php_mysqli.dll 去掉前面的分号,然后重启web服务器.

江夏区18189112344: 请大虾帮助啊,看看我的这段PHP代码什么地方不对啊,怎么总是提示错误呢! -
宏谭利倍: 你没声明变量$a, 这个程序也没法执行 啊 <? $a=1 do { echo"循环".++$a; }while($a<4) ?>

江夏区18189112344: php代码问题:代码执行总是报错,帮忙找下原因,谢谢!! -
宏谭利倍: 先获取表单中的值,然后判断是否为空,通过此判断是否点了提交呀.我一直都这样做的.<?$uuu=$_POST['uuu'];if(!empty($uuu)){$conn=@mysql_connect("localhost","root","");mysql_select_db("test",$conn); $sql="insert into ...

江夏区18189112344: php在运行不了出现错误 -
宏谭利倍: php.ini里更改error_reporting属性设置 error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT

江夏区18189112344: php从数据库中拿数据,为什么总是返回false呢? -
宏谭利倍: 对$result = mysql_query("select `programname` from `programinfo` where `aikang`= '内科'",$con);$row = mysql_fetch_array($result);的$result和$row进行检查,你这里打印出false,是因为$row为空.

江夏区18189112344: PHP 每次运行都提示错,我是初学MYSQLI,求教了. -
宏谭利倍: mysqli要php5.3以上才有的,所以要检查你的php版本,还有你的ini文件有没有扩展使用mysqli

江夏区18189112344: 经常在运行PHP文件时会发生一些错,想知道这些错误有哪些,有谁总结过吗? -
宏谭利倍: 很多情况下,我们的PHP文件会出现一些非常难以排查的错误,比如输出大白页,调错无从下手.这是可能PHP的错误等级屏蔽了一些非致命的错误,造成没有任何错误提示.所以了解和熟悉PHP错误等级,或许能够成为调错的新方法. php....

江夏区18189112344: php出错提示Undefined variable -
宏谭利倍: 首先Notice不是错误,是警告,他不会强制程序停止运行 其次 public function getProp($add, $minues) { $value =$id+$add-$minues; echo $value; } 这里面的这个id实际上是没有赋值的,为什么呢?看下面 虽然你在类里面定义了public $id = 78; 但是要调用他,必须这样写 public function getProp($add, $minues) { $value =$this->id+$add-$minues; echo $value; } 像你原来这样写,调用的是这个方法里面的id,但是你又没有定义,所以出现了这个Notice

江夏区18189112344: 在写php的时候,出现这些错误,不知道怎么解决,初学者求助~~~ -
宏谭利倍: 第23行错误,调用一个不是类的方法$stmt不是一个类,只是一个数据库源.改成if($pdo->rowCount()){ $user = $pdo->fetch(PDO::FETCH_ASSOC);}

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网