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 回答