什么make数组变量更改其值,即使它是由val分配的也不引用

时间:2018-09-16 18:05:46

标签: php arrays reference

$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的。

0 个答案:

没有答案