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));