クラス 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 ハンドラーにチャネルしたいと考えています。これを行う方法はありますか?