PHP foreach &怪異問題


猜猜一下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) 就好了。但還是不明白為什么是后兩個值會相同呢?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM