php遍历时发现最后一个元素的值随着遍历变化
造成该问题的原因是之前使用的 &
来遍历元素。
$arr = [1, 2, 3, 4];
foreach($arr as &$v){
echo $v;
}
// 1, 2, 3, 4
foreach($arr as $v){
echo $v;
}
// 1, 2, 3, 3
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
原因: $v
的指针没有释放
解决办法
$arr = [1, 2, 3, 4];
foreach($arr as &$v){
echo $v;
}
// 1, 2, 3, 4
unset($v);
foreach($arr as $v){
echo $v;
}
// 1, 2, 3, 4
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
上次更新: 2023/09/22, 16:54:32