猜猜一下PHP輸出什么?$list = array();
$list[] = 'a1'; $list[] = 'a2'; $list[] = 'a3'; foreach ($list as &$r) { //$r['vv'] = 'a'; } //unset($r); foreach ($list as $r) { echo $r; }
答案是:a1a2a2
郁悶啊。數組重新查找時,數組的最后兩項就會指向同一個值。
官方的foreach說明 http://www.php.net/manual/zh/control-structures.foreach.php
解決辦法是,在使用foreach($list as &$r){} 后unset($r) 就好了。但還是不明白為什么是后兩個值會相同呢?