1
<?php
class A
{
    public static function foo()
    {
        // some action
    }

    public static function __callStatic($method, $args)
    {
        self::foo();
        static::$method($args);
    }
}

class B extends A
{
    public static function bar(){}
}

私は PHP public static function handler を検索しますが、試してみ__callStatic()ましたが、プライベート メソッドと保護されたメソッドでのみ呼び出しています。

4

1 に答える 1

3

__call__callStaticDocsなどの魔法のメソッドは、クラスに存在しないメソッドに対してのみ呼び出されます。通常のメソッド呼び出しが発生した場合、それらはトリガーされません。したがって、パブリック メソッドでそれを達成する方法はありません。

call_user_funcただし、これらのメソッドを非公開/保護して、またはを使用してマジック メソッドで呼び出すことができますcall_user_func_array。もちろん、これらの関数の戻り値もマジック メソッドによって返される必要があります。

于 2012-07-20T18:18:56.547 に答える