php - 使用new分配变量时出现意外行为

时间:2014-06-11 20:24:32

标签: php class variable-assignment

我对以下代码示例感到困惑。我猜第二个作业$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) }

1 个答案:

答案 0 :(得分:1)

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

  

PHP引用是一个别名,它允许两个不同的变量   写入相同的值。从PHP 5开始,对象变量没有   将对象本身包含为值。它只包含一个对象   标识符,允许对象访问者查找实际对象。   当一个对象通过参数发送,返回或分配给另一个对象时   变量,不同的变量不是别名:它们持有副本   标识符,指向同一个对象。

相关问题