位置: 编程技术 - 正文

浅谈PHP中关于foreach使用引用变量的坑(php的foreach)

编辑:rootadmin

推荐整理分享浅谈PHP中关于foreach使用引用变量的坑(php的foreach),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php中的for循环,php中的foreach,php fork,php中for语句,php中foreach用法及参数,php中for语句,php中的foreach,php中的foreach,内容如对您有帮助,希望把文章链接给更多的朋友!

写PHP好多年,但仍然会犯低级错误,今天遇到个 foreach中引用变量时的坑,PHP版本为 5.6. 代码如下:

输出结果

一开始看到第二个 foreach 输出的结果感觉很是莫名其妙,怎么会输出两个 d_d 呢?

仔细想了想,原来因为PHP foreach 中的 $a 的作用域是整个函数的局部变量,在循环外部仍然有效,而不是被封闭在循环内的,

所以当执行第二个foreach 时的 $a 并不是新的变量,而是仍然指向 $arr 数组第5个元素的地址引用,

当第二个 foreach 在循环时实际上是在不停的给 $arr 数组的第5个元素赋值,

具体赋值情况,

浅谈PHP中关于foreach使用引用变量的坑(php的foreach)

第一次:a_a 赋值给第5个元素, 结果为: [a_a, b_b, c_c, d_d,a_a]

第二次:b_b 赋值给第5个元素,结果为: [a_a, b_b, c_c, d_d,b_b]

第三次:c_c 赋值给第5个元素,结果为: [a_a, b_b, c_c, d_d,c_c]

第四次:d_d 赋值给第5个元素,结果为: [a_a, b_b, c_c, d_d,d_d]

第五次:此时因为第五个元素已经变成 d_d 又重新把 d_d 赋值给第5个元素,结果还是为: [a_a, b_b, c_c, d_d,d_d]

解决办法:

1.尽量不使用相同的循环变量名;

2.每次使用完或再次使用前进行 unset($a); 处理,解除地址应用

还是用上面代码示例:

输出结果:

现在就正常了,这些小细节一定要注意了

标签: php的foreach

本文链接地址:https://www.jiuchutong.com/biancheng/301336.html 转载请保留说明!

上一篇:利用switch语句进行多选一判断的实例代码(怎么用switch语句)

下一篇:PHP多维数组元素操作类的方法(phpwhile循环多维数组)

  • 计提城建税怎么算
  • 没有上市的公司怎么看财务报表
  • 个体工商户五级税率
  • 体检怎么写公司抬头
  • 事业单位无形资产管理制度
  • 债务重组的会计准则
  • 收到凭证的收据
  • 软件开发的服务内容方式要求
  • 个税怎么计算扣多少
  • 公司拖欠工资还要继续工作吗?
  • 营业执照印花税是什么意思啊
  • 开采石头要交什么税
  • 建筑合同通用条款
  • 个税申报需要补税是什么情况
  • 反映留存收益的账户
  • 付出去的款项退回的会计分录如何做
  • 企业网管出路
  • 本地连接受限制无法连接
  • kb4586863更新
  • ahqtb.exe是啥进程 ahqtb进程信息查询
  • php常用设计模式(大总结)
  • 分手我不怕
  • php 上传
  • php中defined什么意思
  • PHP:pcntl_sigwaitinfo()的用法_PCNTL函数
  • 安大略省节日
  • 现金折扣优惠
  • 使用vue搭建项目
  • 存货核算方法可以变更吗
  • 职工食堂外包账务怎么做
  • 关停所有swap分区的命令
  • 非常经典的php文章
  • python web开发方向的第三方库有哪些
  • 无数据库cms
  • 报关单运费cny
  • 契税计入会计利润总额吗
  • sql批量替换值
  • 预缴个人所得税怎么做分录
  • mysql 字符集
  • mongodb 日志
  • 土地无形资产摊销年限多少年
  • 开增值税专票要交税吗
  • 高铁票进项抵扣计算错了 怎么办理
  • 外企可以申请高新技术
  • 疫情期间上班,公司是否给员工买保险
  • 中小企业应交税费怎么算
  • 收到员工交来的宿舍费
  • 水泥建材销售公司有哪些
  • 进项税额转出有什么好处
  • 补贴费用申请书怎么写
  • 企业存货明细表和盘点表
  • 工程材料票占工程款的比例
  • 消费税出口退税吗
  • 代理服务费计入什么科目
  • 冲暂估成本怎么做分录
  • 哪些行业可以开收购发票
  • 企业差旅费的报销流程
  • 会计师事务所工作怎么样
  • 新准则下企业开什么发票
  • 旅行社开的机票款可以抵扣吗
  • 企业如何计算增值税
  • 期末留抵税额和上期留抵税额
  • 利用公式计算填空题
  • win8操作
  • bios界面如何进入
  • hpz12进程
  • xp启用windows功能
  • win7如何设置桌面背景图
  • win7系统开机后桌面黑屏
  • python的理解
  • 安卓数据网络
  • ug10避让怎么设置
  • javascript下拉列表怎么做
  • javascript工作
  • md5加密python
  • 广东省电子学校
  • 按照5%的征收率减按1.5%
  • 核准类和备案类的区别
  • 大连市国家税务网
  • 冷库出租需要交什么税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设