1

これでうまくいくと思ったのですが、うまくいきませんでした。

class Foo {
    public function send($to, $message)
    {
        echo 'sending';
    }
    public static function __callStatic($method, $params)
    {
        return call_user_func_array(array(new static, $method), $params);
    }
}

私がするとき、なぜそれはまだ代わりにFoo::send('mary','you had a little lamb')呼び出しているのですか?Foo::send()new Foo ->send($to, $message)

Non-static method Foo::send() should not be called statically, assuming $this from incompatible context

4

1 に答える 1

4

マニュアルによると:

__callStatic() は、静的コンテキストでアクセスできないメソッドを呼び出すときにトリガーされます。

メソッドはアクセス不能ではなく、存在し、アクセス可能です。静的ではありません。

于 2012-09-28T14:03:03.457 に答える