Php 使用存储在属性中的类名

Php 使用存储在属性中的类名,php,syntax,Php,Syntax,我在一个对象属性中存储了一个类名,我想用它从该类访问一个静态方法,但我似乎找不到有效的语法: $this->className::staticMethod() 不起作用,而且 {$this->className}::staticMethod() 也不行,PHP有正确的语法吗?试试这种语法: $class = $this->className; $class::staticMethod(); 如果您的PHP版本>5.2 call_user_func($this->cl

我在一个对象属性中存储了一个类名,我想用它从该类访问一个静态方法,但我似乎找不到有效的语法:

$this->className::staticMethod()
不起作用,而且

{$this->className}::staticMethod()
也不行,PHP有正确的语法吗?

试试这种语法:

$class = $this->className;
$class::staticMethod();

如果您的PHP版本>5.2

call_user_func($this->className.'::staticMethod'); 
否则

还有论点:

call_user_func_array(array($this->className, 'staticMethod'), array($argument, $anotherArg));

好的,这是可行的,但很难看,如果没有更好的解决方案,我宁愿使用一个临时变量。第一个不是太难看。第一个不是太坏,但它看起来像一个黑客(它是:)。有争论的版本很难看+无论如何,我要一个有效的答案
call_user_func_array(array($this->className, 'staticMethod'), array($argument, $anotherArg));