$a = array();
$var=array();
$a = array_fill(1, 3, '1');
test($a,$var);
$b = $a;
echo print_r($b).NL;
$a[2]='3';
echo print_r($b).NL;
function test(&$a,&$var){
foreach($a as $i =>$v)
{
$var[$i]= &$a[$i];
}
Array ( [1] => 1 [2] => 1 [3] => 1 ) 1
Array ( [1] => 1 [2] => 3 [3] => 1 ) 1
即使是由val复制,也会在$ b数组中输出3。看来$var[$i]= &$a[$i];
会以某种方式出现这种情况,但是如您所见,地址是分配给$ var而不是$ b的。