奇怪的php引用传递

时间:2018-02-21 11:08:02

标签: php reference parameter-passing

有一个函数F()。它返回对象' $ O'它包含一个类' C'。

的实例

$ O有一个成员变量' $ O-> a'。

$ O-> a包含'& $ v',变量$ v的引用。

在代码中写代就是这样。

function F() {
    $O = new C();
    return $O;
}

并且,我从其他地方调用了这个函数,得到了这样的C实例。

$aO = F();

一般来说,$ aO-> a应该包含& $ v。如果$ v有价值' 2',$ aO-> a必须有'& int(2)'当它被倾倒。因为它是一个参考。

但它没有。它包含值' int(2)'。

我不知道为什么会这样。

当我在返回之前转储成员变量时,

function F() {
    $O = new C();
    var_dump($O);
    return $O;
}

$ O-> a完全正常。它肯定包含'& int(2)'。但它会在返回后自动将其自身更改为值。

为什么会这样?帮助我。

0 个答案:

没有答案