代碼:PHP從陣列複製參考陣列
$a = array('email'=>'[email protected]','topic'=>'welcome onboard','timestamp'=>'2017-10-6');
$b = array();
foreach($a as $v){
$b[] = &$v;
}
var_dump($a);
var_dump($b);
結果:
array(3) {
["email"]=>
string(11) "[email protected]"
["topic"]=>
string(15) "welcome onboard"
["timestamp"]=>
string(9) "2017-10-6"
}
array(3) {
[0]=>
&string(9) "2017-10-6"
[1]=>
&string(9) "2017-10-6"
[2]=>
&string(9) "2017-10-6"
}
爲什麼$ B的含量不是$一個各元素的引用? 我預期$ B的應該是什麼樣{&一個[0],&一個[1],& A [2]}代替{&一個[2],&一個[2],& A [2]}
它看起來像的根源是的foreach每次$ V實際上是同一個變量空間,而不是一個全新的變量。對於通常情況下的價值傳遞情況,它可以正常工作,但對於'通過引用'來說,它會導致意想不到的情況,除非編碼人員對此有更好的理解。 – Orange