【问题标题】:php - Unexpected behavior when assigning a variable with newphp - 使用 new 分配变量时的意外行为
【发布时间】:2014-08-02 01:02:23
【问题描述】:

我对下面的代码示例有点困惑。我猜第二个赋值 $ins = new A(); 会覆盖之前的 $ins 引用。

我也不理解#1#2var_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) }

【问题讨论】:

标签: php class variable-assignment


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 2012-12-14
    相关资源
    最近更新 更多