1.背景php
今天学习PHPExcel的使用,在代码执行foreach($data as $value){...}的时候出现这样一个警告提示:Warning: Invalid argument supplied for foreach() in I:\WWW\PHPExcel\export.php on line 35;后来查询了一下,这个警告的意思是:foreach()遍历输出的是一无效的数组【注意,无效数组不等于空数组】,而致使我这个错误的缘由是,正确的代码应该是
数据库
【getType($i)这个方法,属于数据库操做,我把全部的数据库操做封装成了方法写在了另外一个文件中,这里没有须要对象来调用,所以没有取到数据致使数组为空,从而致使$data这个是一个无效数组,从而引发了报错!】数组
2.摘要
学习
为了代码在正式上线运行中频繁报错:测试
咱们应该在遍历以前对数组变量进行一个判断:若是该变量不是一个有效数组,则设置该变量为一个空数组即array(),这样是较好的解决办法!【额(⊙o⊙)…可是像我这样,马大哈了,在测试的时候仍是先把判断注释掉,这样才能知道究竟是哪里错了!由于查了怎么解决这个警告提示,因此特此记录,若是有其余更好方法或想法,欢迎指正!】spa
3.解决方法
对象
【在此,我使用三元运算符简便了判断数组是否为有效数组】get
is_array( $data = $db->getType($i)) ? null : $data=array();变量
这行代码的意思:判断$data是否为一个有效数组,若是数组有效,继续下列操做,若是数组是无效数组,则给$data变量赋一个空数组值foreach
【is_array():返回一个布尔值,功能是判断传入的变量是不是一个有效的数组!注意,空数组 $data=array() 是有一个空值的,是一个有效数组,本身能够测试一下】