代码: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