永发信息网

php 引用 和 foreach的问题

答案:1  悬赏:80  手机版
解决时间 2021-11-20 01:30
  • 提问者网友:我们很暧昧
  • 2021-11-19 09:44
php 引用 和 foreach的问题
最佳答案
  • 五星知识达人网友:动情书生
  • 2021-11-19 11:16
楼主确实发现了一个容易出错的地方。我以后也要注意了,幸好平时很少在同一个作用域用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){}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯