給定擴展類B的類A,如何調用類A的__call函數覆蓋從父類繼承的匹配函數?魔法方法如何覆蓋繼承
考慮這個簡單的例子:
class A
{
public function method_one()
{
echo "Method one!\n";
}
}
class B extends A
{
public function __call($name, $args)
{
echo "You called $name!\n";
}
}
$b = new B();
$b->method_one();
當我運行它,我得到的輸出Method one!
。我想得到輸出You called method_one!
。
那麼,我如何讓子類的魔法方法覆蓋父類定義的方法?
我需要擴展對象,因爲我需要訪問A中的受保護方法,但我想將所有公共方法引導到我自己的__call處理程序中。有沒有辦法做到這一點?
__call僅將覆蓋AREN方法」否則可以訪問;你的method_one()是公開的,所以它是可訪問的。試着讓它保護 – 2013-05-01 10:25:21
爲什麼你不使用正常的覆蓋? – 2013-05-01 10:26:01
@ShankarDamodaran因爲我有很多我想重寫的函數。我首先擴展它的唯一原因是獲得我需要的受保護方法 – Benubird 2013-05-01 10:27:35