数组循环引用的问题

2020-05-26
$arr = array(1, 2, 3, 4);

foreach ($arr as &$v) {
}
// $v 是引用,指向了数组的最后一个元素内存地址
// 循环引用结束后,应该unset($v)
foreach ($arr as $k => $v) {
    // $v 指向数组的最后一个元素位置
    // 第一次循环,当前的值赋值给了最后一个元素,$arr[3] = 1
    // 第二次循环,将当前的值赋值给了最后一个元素,$arr[3] = 2
    // 第三次循环,将当前的值赋值给了最后一个元素,$arr[3] = 3
    // 最后一次循环,$arr[3] = 3,即最后一个元素的值为3 赋值给了 $v
    echo $k . ' -- ' . $v . ' --- ' . $arr[3] . PHP_EOL;
    // 可以每次循环打印数组
//    var_dump($arr);
}

var_dump($arr);