位置: 编程技术 - 正文

浅谈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循环多维数组)

  • 居民个人取得境内、境外所得,如何计算应纳税额?
  • 一般纳税人企业所得税多久申报一次
  • 金蝶软件中怎么增加固定资产
  • 支付给法律顾问的钱
  • 财务报表是什么意思
  • 购入不动产进项税额抵扣
  • 实收资本认缴怎么缴纳印花税
  • 单位为个人负担工资、薪金所得的个税,怎么征收个税
  • 一般纳税人旧货
  • 自建固定资产入账
  • 跨期差额扣除的计算开票以及账务处理
  • 利息股息红利所得
  • 职工暖气费报销算福利
  • 小企业核算其它货币资金包括哪些?
  • 收到的扶贫工作经费会计分录
  • 给员工缴纳保险
  • 已核销的贷款收回计入什么科目
  • 视同销售可以抵扣销项税吗?
  • 快递增值税税率
  • 出口退税征税
  • 专家评审费如何报销费用
  • 营改增后小规模纳税人税率是多少
  • 过了征期还能报税吗
  • 期末留抵税额转出怎么报税
  • 兼职取酬案例剖析
  • 总分类账的账簿启用表怎么填
  • 文化公司发展战略
  • 汽车发票抵扣联需要盖章吗
  • 民办非企业捐赠支出会计处理
  • 框架采购合同如何计贴印花税?
  • 跨区域提供建筑服务个人所得税
  • 增值税减免算什么费用
  • 费用销售收入占比怎么算
  • Yii2使用驼峰命名的形式访问控制器(实例讲解)
  • 下列关于企业发生的税费说法正确的是
  • 勃艮第蜗牛干红葡萄酒
  • php伪静态规则写法
  • 酒店的原材料和包装
  • 会计核算中 制度有哪些
  • 新年快乐彝文怎么写
  • 房地产公司收到预售款缴纳印花税吗
  • thinkphp d
  • 联邦学习(FL)+差分隐私(DP)
  • web课程设计模板
  • pytorch新手入门
  • netconf over ssh
  • 佣金怎么收税
  • 织梦使用手册
  • 增值税开票系统客服电话
  • 融资租赁各方
  • 计提固定资产折旧借方科目包括
  • 火车票丢了还能再取吗
  • 土地使用权转为在建工程
  • 专款专用需要缴税吗
  • 小规模纳税人企业所得税优惠政策最新2023
  • 人力资源公司劳务外包
  • 验资报告费用如何做账
  • 物业管理公司收入确认
  • 税控服务费全额抵扣怎么申报
  • 知识产权fa
  • 社会保险费结算表怎么打印
  • 股权变更需要做账吗
  • 服务行业服务费怎么入账
  • 常用的sql语句有哪些
  • MySQL使用select语句查询指定表中指定列(字段)的数据
  • qpso算法
  • win2003远程桌面最大连接数
  • linux 的ll
  • windows 9
  • 苹果手机价格
  • 服务器中的ocp卡全称是什么
  • xp桌面字体有阴影怎么去掉
  • python pyo
  • 淘宝国际平台叫什么
  • 白盘怎么开具红字专用发票
  • 税务干部转正工作总结
  • 税控发票开票软件(金税盘版)打不开?
  • 职工疗养费可以税前扣除吗
  • 汉中税务大厅电话是多少
  • 税控发票证书密码是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设