繁体   English   中英

php-为变量分配新变量时的异常行为

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM