永发信息网

php 引用 和 foreach的问题

答案:1  悬赏:80  手机版
解决时间 2021-11-20 01:30
php 引用 和 foreach的问题
最佳答案
楼主确实发现了一个容易出错的地方。我以后也要注意了,幸好平时很少在同一个作用域用2次遍历。
原因:
foreach ($a as &$val)
把$val指向每个元素的地址。当循环完的时候,$val指向的是$a最后一个元素3的地址。
第二次遍历foreach ($a as $val)将每个元素依次赋值到最后一个地址上。
数组$a的变化循环第一次[1,2,1],第二次[1,2,2],第三次次[1,2,2]

避免这个问题,要在第一次foreach循环后加上
foreach ($a as &$val){}
unset($val); //加上这句,取消$val对地址的引用,程序恢复正常。
foreach ($a as $val){}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
上海市闵行区七宝镇联明路到上海虹桥怎么走
为什么中国人必须要学习国学经典
48减多少加3等于11
0.46km是多少米内?
江苏莲云港至松桃有多少高速公里?
610÷( )>50( )里最大能填几?
卫东加油站(南马路与和平西街交口北)地址在什
外国人唐纳德和奥斯丁专用捕蛇工具
多选 线路同杆架设时应必须保证 1电力线路在
临时改变大学可以吗
龟牌新车蜡白金蜡极限蜡有什么区别
宋代杨家将抗辽是哪
健身教练国职和国专有什么区别
智能下载器v3.2无法下载,说网络连接错误。网
用触爱用补水的为何火辣辣的感觉
推荐资讯
汽车加油可开增值税发票吗?
南京科进实业有限公司在什么地方啊,我要过去
3+2写作什么
小区安装燃气锅炉合法吗
云亭实验小学三河口办学点地址在什么地方,想
借一万现金12期每月还多少
克里斯安吉尔现在在魔术界中的地位如何?超过
哽噎是什么意思
这是什么,像老鼠,但比老鼠大一点,成年后有
0.85=():()=34÷()=()分之六十
用运算律计算下面各题125×(40+8)
“……重……远”成语是什么?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?