小编Ash*_*gan的帖子

在同一个类中调用__call而不是__callstatic,而不是调用另一个类

我有一个关于一个奇怪的comportement的问题.

看看这段代码:

class User
{
    public function can($name) {
        return call_user_func(array($name, 'test'));
    }

    public static function __callStatic($name, $args) {
        return 'User::__callStatic';
    }

    public function __call($name, $args) {
        return 'User::__call';
    }
}

class Foo
{
    public static function __callStatic($name, $args) {
        return 'Foo::__callStatic';
    }

    public function __call($name, $args) {
        return 'Foo::__call?';
    }
}

$u = new User();
var_dump($u->can('User'));
var_dump($u->can('Foo'));
Run Code Online (Sandbox Code Playgroud)

第一个var转储的结果是:"User :: __ call"和第二个:"Foo :: __ callStatic"

为什么第一个不调用函数__callStatic?

PS:我看其他主题,但没有找到解释.

谢谢

php static static-methods call

6
推荐指数
1
解决办法
222
查看次数

标签 统计

call ×1

php ×1

static ×1

static-methods ×1