下载鸥 > 网站下载 > 开发教程 > 帝国CMS

foreach和require的坑

115 2024-06-09 08:04:24

收藏
昨天有客户找欧哥找一个bug,foreach一个函数,如果只有一条数据,可以正常运行,但如果超过一条数据,从第二条开始就出问题了。

欧哥上客户网站一看,还真是。
 

客户源码

经客户同意,源码大致如下:
foreach($items as $item){
    $item=explode("|",$item);
    $number = (INT)$item[0];
    $classid = (INT)$item[1];
    $text = RepPostStr($item[2]);
    ...
    include("function.php");
    $newsid = checkInfo($number,$classid,$text);
    if($newsid){
        $up=$empire->query("...");
    }else {
        echo "未取得数据";
    }
}
 

问题聚焦

其实,只要打开报错,这个问题肯定会报出来。但客户没有这个习惯(可能是因为7.2的php + 生产环境,不便报错否则整站前台都要受到严重影响)。

那么,问题在哪里呢?

foreach是一个循环,如果循环里require一个文件,就必然导致这个报错
Cannot redeclare checkInfo() (previously declared in...

跟客户一说,客户开了报错看一眼,果然。
 

报错解读

这是因为声明了一个名为xxx的函数,但是这个函数之前已经被声明过了。这个问题,常见于多次引入一个文件。这个报错也回到主题foreach和require的坑:

不管是foreach,还是for,还是while,都不能在循环里面require另一个文件,否则必然出错。
 

解决方案

要解决这个问题也很简单,require改为require_once就可以了。

开发这条路,就是不停踩坑,又不停填坑的过程。

本文地址:https://xzo.com.cn/develop/empire/1242.html

有帮助,很赞!

信息来源:下载鸥
导出教程 下载word版教程
发表评论 共有条评论
关于帝国CMS


帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用

当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。

推荐帝国CMS开发教程
帝国cms列表页怎样置顶?
帝国cms列表页怎样置顶?

在很多时候,我们有信息置顶的需求。但大家在后台信息设置好置顶后可能会发现...

11 890
帝国CMS内容简介(smalltext)增加JS对输入字数进行统计
帝国CMS内容简介(smalltext)增加JS对输入字数进行统计

在一些需要控制用户输入字数的站点中,增加用户输入字数的实时提示无疑十分友...

16 984
帝国CMS怎样修改首页模板?
帝国CMS怎样修改首页模板?

网站在运营过程中难免要进行小小的修修改改,此时如果找人就比较麻烦,自己改试...

1 502
帝国cms怎样批量删除上万篇文章/指定会员/时间段发布的信息?
帝国cms怎样批量删除上万篇文章/指定会员/时间段发布的信息?

在网站运营过程中,我们可能因为这样那样的原因需要批量删除大批文章信息,几十...

1 1266
帝国cms封面模板怎样调用栏目别名做标题
帝国cms封面模板怎样调用栏目别名做标题

我们知道,帝国cms终极栏目可以用<?=$class_r[$GLOBALS[navclassid]][bname]?...

1 472
帝国CMS怎样验证后台发布信息标题是否重复?
帝国CMS怎样验证后台发布信息标题是否重复?

想要在帝国cms后台禁止发布标题相同的信息,或是在发布信息时验证一下标题是...

2 759
帝国cms怎样判断当前页面为首页?
帝国cms怎样判断当前页面为首页?

在帝国cms开发时,我们经常要给栏目配置高亮效果。栏目高亮判断循环的id等于...

0 721
织梦、帝国cms、Wordpress的区别/哪个更好?
织梦、帝国cms、Wordpress的区别/哪个更好?

织梦、帝国以及wordpress,国内建站领域占据最大份额的就是这3家公司了。但,他...

0 588
推荐插件
帝国cms百度文字识别ocr接口对接插件
帝国cms百度文字识别ocr接口对接插件

许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...

0 504
帝国cms智能自动审核按星期几审核指定栏目带推送插件
帝国cms智能自动审核按星期几审核指定栏目带推送插件

采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...

0 1343
帝国cms自动生成文章新闻目录插件下载
帝国cms自动生成文章新闻目录插件下载

用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...

0 1188
帝国cms百度AI图像去雾api接口对接插件
帝国cms百度AI图像去雾api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像去雾的功能。经过实际...

0 493
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

0 603
帝国cms联想词搜索高级搜索插件下载
帝国cms联想词搜索高级搜索插件下载

帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...

0 801
帝国cms多栏目多数据表自动审核推送插件
帝国cms多栏目多数据表自动审核推送插件

本插件基于帝国cms帝国cms每日自动审核插件,在自动审核指定条数信息的基础上...

0 983
帝国cms批量添加后台用户插件
帝国cms批量添加后台用户插件

使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...

0 835
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入