请帮助我证明变量引用或复制的情况。
Case1 - $arr复制还是引用?:
class Ex1{
public static $var1=array(10=>'work', 20=>'home');
}
$arr=Ex1::$var1;Case2 - $arr复制还是引用?:
class Ex1{
protected static $var1=array(10=>'work', 20=>'home');
public static function getArr(){
return self::$var1;
}
}
$arr=Ex1::getArr();谢谢,Yosef
发布于 2011-03-01 19:42:24
根据我的估计,它应该是一个复制品。
class Ex1{
public static $var1=array(10=>'work', 20=>'home');
}
$arr=Ex1::$var1;
var_dump($arr);
$arr[15] = 'play';
var_dump($arr);
$arr2=Ex1::$var1;
var_dump($arr2);
Ex1::$var1 = array(10=>'work', 15=>'asylum', 20=>'home');
$arr3=Ex1::$var1;
var_dump($arr3);
var_dump($arr2);给出
array
10 => string 'work' (length=4)
20 => string 'home' (length=4)
array
10 => string 'work' (length=4)
20 => string 'home' (length=4)
15 => string 'play' (length=4)
array
10 => string 'work' (length=4)
20 => string 'home' (length=4)
array
10 => string 'work' (length=4)
15 => string 'asylum' (length=6)
20 => string 'home' (length=4)
array
10 => string 'work' (length=4)
20 => string 'home' (length=4)发布于 2011-03-01 19:43:39
两个都收到。默认情况下,仅通过引用传输对象。
发布于 2011-03-01 19:37:29
修改$arr,然后修改var_dump(Ex1::getArr());,您将看到它是一个副本还是一个引用。
编辑:未看到Ex1::var1被保护
https://stackoverflow.com/questions/5153939
复制相似问题