有一个函数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)'。但它会在返回后自动将其自身更改为值。
为什么会这样?帮助我。