我对以下代码示例感到困惑。我猜第二个作业$ins = new A();
会覆盖之前的$ins
引用。
我也不了解#1
,#2
,(1),(1)
输出中的var_dump
,我预计至少(0),(0)
提前致谢
class A{
public $var = 2;
}
$ins = new A();
$aux = &$ins;
$ins->var = 3;
var_dump($aux);
echo '<br>';
$ins = new A();
$ins->var = 5;
var_dump($aux);
打印
object(A)#1 (1) { ["var"]=> int(3) }
object(A)#2 (1) { ["var"]=> int(5) }
答案 0 :(得分:1)
http://www.php.net//manual/en/language.oop5.references.php
PHP引用是一个别名,它允许两个不同的变量 写入相同的值。从PHP 5开始,对象变量没有 将对象本身包含为值。它只包含一个对象 标识符,允许对象访问者查找实际对象。 当一个对象通过参数发送,返回或分配给另一个对象时 变量,不同的变量不是别名:它们持有副本 标识符,指向同一个对象。