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

foreach和require的坑

78 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标签伪静态美化为/tags-100-0.html的形式(去掉etagid)
帝国CMS标签伪静态美化为/tags-100-0.html的形式(去掉etagid)

帝国cms简单修改实现TAGS以TAGID的方式伪静态,修改后的地址形式如:/tags-100-...

14 696
帝国cms封装自定义函数实现用户发布数统计
帝国cms封装自定义函数实现用户发布数统计

在帝国cms会员开发的过程中,我们经常需要展示用户文章发布数统计。如果每次...

1 338
帝国cms怎样判断一个栏目有没有子栏目?(父栏目换位判断原创方案)
帝国cms怎样判断一个栏目有没有子栏目?(父栏目换位判断原创方案)

在帝国cms站点的开发过程中,有时候需要判断栏目有没有下级栏目,如果有子栏目,...

3 432
帝国CMS怎样根据栏目关键字调用Tags信息
帝国CMS怎样根据栏目关键字调用Tags信息

在帝国cms开发过程中,我们经常会遇到这样那样的需求。就如栏目信息的展示,有...

1 490
帝国cms显示的发布时间与实际发布时间相差了8小时怎么办?
帝国cms显示的发布时间与实际发布时间相差了8小时怎么办?

有少量客户在使用帝国cms建站时发现一个问题:帝国cms显示的发布时间与真实的...

0 428
帝国cms禁止蜘蛛抓取后台提升网站安全
帝国cms禁止蜘蛛抓取后台提升网站安全

后台是网站安全的重中之重,而帝国cms后台路径可以修改让得网站安全度大为提...

1 529
帝国cms网站怎样判断是动态、静态还是伪静态?
帝国cms网站怎样判断是动态、静态还是伪静态?

对于资深一点的站长或者SEO来说,一定会经常听到动态、静态、伪静态这类的词...

0 604
帝国cms彩色tag标签样式分享
帝国cms彩色tag标签样式分享

帝国cms标签列表如果做死板的展示可能不大好看,如果能增加一些色彩,无疑会让...

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

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

0 1263
帝国cms网站会员登录与退出历史记录日志插件
帝国cms网站会员登录与退出历史记录日志插件

帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...

0 392
帝国cms在线考试系统模板插件
帝国cms在线考试系统模板插件

一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...

0 1270
帝国cms百度AI图像无损放大api接口对接插件
帝国cms百度AI图像无损放大api接口对接插件

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

0 430
帝国cms自动给正文关键词添加tag内链
帝国cms自动给正文关键词添加tag内链

帝国cms有自带的给关键词添加内链功能,但需要手动添加关键词,容易出现疏漏和...

0 824
帝国cms百度AI黑白图像上色api接口对接插件
帝国cms百度AI黑白图像上色api接口对接插件

百度开放了系列AI功能api如图像上色、图像去雾、图像修复、无损放大、清晰...

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

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

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

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

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