[英]php - Unexpected behavior when assigning a variable with new
我对以下代码示例有些困惑。 我猜想第二个赋值$ins = new A();
将覆盖先前的$ins
参考。
我也不理解var_dump
输出中的#1
, #2
或(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) }
http://www.php.net//manual/en/language.oop5.references.php
PHP引用是一个别名,它允许两个不同的变量写入相同的值。 从PHP 5开始,对象变量不再包含对象本身作为值。 它仅包含一个对象标识符,该标识符使对象访问者可以找到实际的对象。 当对象通过参数发送,返回或分配给另一个变量时,不同的变量不是别名:它们持有标识符的副本,该副本指向同一对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.