执行
$data = ['a','b','c'];
foreach ($data as $k => $v) {
$v = &$data[$k];
}
得到每一次的$data是
Array ( [0] => a [1] => b [2] => c )
Array ( [0] => b [1] => b [2] => c )
Array ( [0] => b [1] => c [2] => c )
这是为什么?
2 回答
Helenr
TA贡献1780条经验 获得超3个赞
第一次循环
$k = 0,$v = 'a'
$v被重新赋值为引用,指向数组的第一个元素'a'
第二次循环
$k = 1,$v被赋值为'b',此时$v指向数组的第一个元素,则数组的第一个元素被赋值为'b'
$v重新指向数组的第二个元素
第三次循环
$k = 2,$v被赋值为'c',此时$v指向数组的第二个元素,则数组的第二个元素被赋值为'c'
$v重新指向数组的第三个元素
- 2 回答
- 0 关注
- 451 浏览
添加回答
举报
0/150
提交
取消