如果我拥有的只是类名的字符串,如何从类中调用静态方法?
2022-08-30 09:10:07
我怎样才能让这样的东西工作?
$class_name = 'ClassPeer';
$class_name::doSomething();
我怎样才能让这样的东西工作?
$class_name = 'ClassPeer';
$class_name::doSomething();
取决于 PHP 的版本:
call_user_func(array($class_name, 'doSomething'));
call_user_func($class_name .'::doSomething'); // >5.2.3
要释放 IDE 自动完成和错误检测的强大功能,请使用以下命令:
$class_name = 'ClassPeer';
$r = new \ReflectionClass($class_name );
// @param ClassPeer $instance
$instance = $r->newInstanceWithoutConstructor();
//$class_name->doSomething();
$instance->doSomething();
基本上,在这里,我们在类的实例上调用静态方法。