因为在第二个循环中,
$v仍然是对最后一个数组项的引用,所以每次都将其覆盖。
您可以看到这样的内容:
$a = array ('zero','one','two', 'three');foreach ($a as &$v) {}foreach ($a as $v) { echo $v.'-'.$a[3].PHP_EOL;}如您所见,最后一个数组项采用当前循环值:“零”,“一个”,“两个”,然后就是“两个” …:)

因为在第二个循环中,
$v仍然是对最后一个数组项的引用,所以每次都将其覆盖。
您可以看到这样的内容:
$a = array ('zero','one','two', 'three');foreach ($a as &$v) {}foreach ($a as $v) { echo $v.'-'.$a[3].PHP_EOL;}如您所见,最后一个数组项采用当前循环值:“零”,“一个”,“两个”,然后就是“两个” …:)