2014-06-11 26 views
1

我对以下代码示例有点困惑。我猜想第二个作业$ins = new A();会覆盖之前的$ins参考。php - 分配新变量时的意外行为

我也不懂#1#2,既不在var_dump输出(1),(1),我希望至少(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代表它看作为数组中值的计数值。 – VikingBlooded

+0

谢谢,我在那找到了答案 http://www.php.net//manual/en/language.oop5.references.php#95522 –

回答

1

http://www.php.net//manual/en/language.oop5.references.php

甲PHP参考是一个别名,它允许两个不同的变量,以 写入到相同的值。从PHP 5起,一个对象变量不包含对象本身作为值的 。它只包含一个对象 标识符,它允许对象访问器查找实际对象。 当一个对象被自变量发送,返回或分配给另一个变量时,这些不同的变量不是别名:它们持有 指向同一对象的标识符副本。