我看到了有关访问父类的属性(如PHP Accessing Parent Class Variable)一些问题,但我似乎在心急火燎的情况下奋斗(我其实不需要这样的模式,但好奇,你知道...☺ ):访问重载PHP性能
如果子类覆盖父类变量并仍想访问它,该怎么办?
例子:
class A {
protected $x = 'a';
}
class B extends A {
protected $x = 'b';
public function showX() {
var_dump(array(
'this->x' => $this->x,
'parent->x' => '??',
}
}
$b = new B();
$b->showX();
不依靠于父getX()
方法(和在B类使用parent::getX()
或只是一个$this->getX()
如果B未覆盖该getX
法),如何获得导致这样的:
this->x: 'b'
parent->x: 'a'
由于http://php.net/manual/pl/keyword.parent.php#94177状态,使用parent::$x
将无法正常工作,因为它会寻找不存在的静态属性$x
。任何工作方式?
一旦你覆盖了'parent :: $ x' ...它被覆盖。稍后在脚本中程序性地重新分配一个变量并没有什么不同 - 您无法获得原始值。 – CD001
你可以在父类中为'x'添加一个getter,然后重新声明'A'并使用getter - https://repl.it/M6uV –
你想要做的就像给变量赋值,然后覆盖该值,然后您想要获得以前的值。 –