我看到了有關訪問父類的屬性(如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 –
你想要做的就像給變量賦值,然後覆蓋該值,然後您想要獲得以前的值。 –