$a=[1,2,3];
foreach($a as &$v){}
foreach($a as $v){}
var_dump($a);
//结果
0 => int 1
1 => int 2
2 => int 2
为什么最后一个元素变成了2
$a=[1,2,3];
foreach($a as &$v){}
foreach($a as $v){}
var_dump($a);
//结果
0 => int 1
1 => int 2
2 => int 2
为什么最后一个元素变成了2
参考 https://www.cnblogs.com/eleve...
陷阱:两次循环使用同样的临时变量的情况下,如果第一次循环使用的是引用,
那么在第二次循环中即使没有加&符号,临时变量也是引用。
这个引用指向了数组中最后一个元素(循环到了最后一个元素结束)。
如何避免这个问题?
1、在第二次循环之前,unset($value)
2、第二次foreach的时候使用不同名字的变量,如$item