在下面的代码中,我希望real_change
和change
方法会更改在构造函数中通过引用传递的变量$n
。
abstract class y {
private $x;
function __construct(&$x) {
$this->x = &$x;
}
function real_change() {
$this->x = 'real change';
}
}
class x extends y {
function change() {
$this->x = 'changed';
}
}
$n = 'intact';
$c = new x($n);
$c->change();
echo $n.PHP_EOL; // prints "intact"
$c->real_change();
echo $n.PHP_EOL; // prints "real change"
为什么会这样?
如何在抽象类中创建一种方法来修改属性中引用的变量?
非常感谢。