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

foreach和require的坑

117 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的下载地址怎样设置点击进入下载页而不弹小窗口

帝国cms默认的下载地址是点击后弹窗一个小窗口,用户体验度并不好,但我们可以...

13 807
帝国CMS标签伪静态美化为/tags-100-0.html的形式(去掉etagid)
帝国CMS标签伪静态美化为/tags-100-0.html的形式(去掉etagid)

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

14 755
帝国cm后台权限检测判断代码大全
帝国cm后台权限检测判断代码大全

帝国cm后台权限检测判断代码大全,包括信息管理、栏目管理、模板管理、用户面...

13 753
帝国cms安装模板里没有install文件夹怎么办?
帝国cms安装模板里没有install文件夹怎么办?

许多客户在使用帝国cms建站后想要再做一个网站,但复制所有的文件到新服务器...

0 523
帝国cms生成自定义列表页怎样压缩?
帝国cms生成自定义列表页怎样压缩?

帝国cms生成的静态页面,大多是在gethtml()函数下实现代码压缩,但自定义页面、...

0 469
帝国CMS怎样配置勾选会员注册协议才能注册
帝国CMS怎样配置勾选会员注册协议才能注册

帝国CMS默认注册是没有会员注册协议的。但如果从严谨的角度出发,不勾选&ldqu...

0 754
栏目目录搭建的帝国cms网站怎样写伪静态规则?
栏目目录搭建的帝国cms网站怎样写伪静态规则?

如果用栏目搭建帝国cms站点,伪静态规则该怎么写呢?如果直接作用于根目录,可能...

1 597
帝国cms外部引入百度统计代码防止被刷统计后台广告优化
帝国cms外部引入百度统计代码防止被刷统计后台广告优化

百度统计后台的广告十分猖獗,而百度统计提供的屏蔽规则并不好用,这个时候,我们...

0 535
推荐插件
帝国cms百度AI图像清晰度增强api接口对接插件
帝国cms百度AI图像清晰度增强api接口对接插件

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

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

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

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

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

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

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

0 508
帝国cms访问统计ip地址链接与封禁插件下载
帝国cms访问统计ip地址链接与封禁插件下载

下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...

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

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

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

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

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

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

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