0

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

4

3 に答える 3