我有一个关于一个奇怪的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:我看其他主题,但没有找到解释.
谢谢