如果我有一個覆蓋受保護變量的子類,並且父類具有對該變量執行任何操作的函數,那麼如何獲取該函數以使用它被覆蓋的值?父類的方法如何訪問子類的重寫變量?
class Superclass {
protected $map;
public function echoMap()
{
foreach ($this->map as $key=>value)
{
echo "$key:$value";
}
}
}
和
class Subclass extends Superclass {
protected $map = array('a'=>1, 'b'=>2);
}
,當我運行以下
$subclass = new Subclass();
$subclass->echoMap();
我希望它返回
a:1
b:2
但$this->map
是在父類空的。我應該做些什麼來獲得我想要的行爲?
編輯: 有一個錯誤的構造函數,而不是在上面貼的例子。它按預期工作。
適合我。 - – webbiedave
還有別的事情沒有告訴我們。你給的例子按預期工作。 –