鍍金池/ 問答/PHP/ foreach遍歷 &引用

foreach遍歷 &引用

執(zhí)行

$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 ) 

這是為什么?

回答
編輯回答
編輯回答
我以為
第一次循環(huán)
$k = 0,$v = 'a'
$v被重新賦值為引用,指向數(shù)組的第一個元素'a'
第二次循環(huán)
$k = 1,$v被賦值為'b',此時$v指向數(shù)組的第一個元素,則數(shù)組的第一個元素被賦值為'b'
$v重新指向數(shù)組的第二個元素
第三次循環(huán)
$k = 2,$v被賦值為'c',此時$v指向數(shù)組的第二個元素,則數(shù)組的第二個元素被賦值為'c'
$v重新指向數(shù)組的第三個元素
2017年5月1日 03:42