今天遇到foreach错误和技巧小结。

来源:互联网 发布:网络编程教程 编辑:程序博客网 时间:2024/06/08 13:06

大笑每天学习一点,进步一点。

foreach出现如下错误,说明foreach遍历的数组目前没有数据或者数组不存在。其实,当访问不存在的字段时,也会出现以下错误。

比如今天调试了半天,原来发现字段名字写错了

warning: invalid argument supplied for foreach() in

解决方法:每个要用foreach读数据的数组在使用前先把它定义成空数组或者用isset()先判断是否存在。

如:

$data = array();

foreach($data){.....}

or

foreach(isset($data)){......}


比如控制器这么写:

//显示前8条活动信息$active = array();$cds = new CDSCms_article();$cds->set_limit(0, 8);$cds->set_order_by(array("art_id" => "DESC"));$active = $cds->select(_EQ("cat_id", 254));_S("active", $active);

模板这么写:

<div class="b_tt"><h4>入围品牌LOGO展示区</h4></div>                    <div class="b_tx">                    <ul class="finalists clear"><? //var_dump($data);?><? foreach($data as $key=>$value){ ?>                            <li><a href="<?=$value['url'];?>" target="_blank"><img src="<?=$value['img'];?>" alt="<?=$value['description'];?>" /></a></li>                            <?php } ?></ul>                    </div>
如果数据表里没有img这个字段,只有image字段,(写错了),就会有上面的错误提示。

2.

foreach($data as $key=>$value){}里面的$key并不是取数据库的自增id,而是自动从0开始排,取几天数据就排到几,如果要做投票排序,可以加一从一开始。

如:$key = $key+1 或者$key += 1