foreach 循环数据引用$v 被错误覆盖

比如在做循环的时候,需要引用$v进行赋值的时候,循环了很多次,都是引用的$v
那么你一开始查出来的$product_list的末尾数据可能会重复,或者说被错误赋值
$product_list = 'select * from product';//这里简略代码了
foreach ($product_list as &$v) {
	
}
foreach ($product_list as &$v) {
	
}
foreach ($product_list as &$v) {
	
}
原因就是多次引用$V 同一个引用值

解决方法有三种,
1,在每一次循环引用的时候引用值要变换,可以用$j,$i,$abcdef......总之不重复的话就没问题
2,再一个就是在循环引用之后 把引用的值删掉  ,再循环的时候再引用$v就不会出现错误
foreach ($product_list as &$v) {
	$v['id'] = 1;
}
unset($v);
3,在循环的时候换一个写法
foreach ($product_list as $k => &$v) {
	$product_list[$k]['id'] = 1;
}
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值