我发现自己处于这种状况,我只是把它弄脏了。但我想知道,有一些干净的方式吗?
class base{
var $value;
public function getValue(){
return 'returned from base: '. $value;
}
}
class object extends base{
public function getValue(){
$this->value = 'wrong value';
return parent::getValue();
}
}
class overwrite extends object{
public function getValue(){
$this->value = 'right value';
?????
}
}
$o = new overwrite;
echo $o->getValue();
我允许编辑的所有内容都是overwrite
。如果我调用parent::getValue()
,则值会被错误的值覆盖。如果我将该类命名为base::getValue()
,则基类将不会设置$value
属性。
答案 0 :(得分:1)
在我完成这个问题之前我想出了这个,但我还是决定发布它:
base :: getValue()似乎是正确的解决方案,php似乎在那里做了一些魔术,所以base
类具有$value
属性集,当从它的子进行调用时。