为什么在类实例上下文中,$this->className::staticMethod
形式的调用不起作用,但$className::staticMethod
形式的调用是否有效?
在下面的示例中callDoSomething2
有效,但callDoSomething
不起作用(我收到解析器错误)。我正在使用PHP版本5.3.15。
<?php
class A {
private $className;
public function __construct($className) {
$this->className = $className;
}
public function callDoSomething() {
$this->className::doSomething();
}
public function callDoSomething2() {
$className = $this->className;
$className::doSomething();
}
}
class B {
public static function doSomething() {
echo "hello\n";
}
}
$a = new A('B');
$a->doSomething();
答案 0 :(得分:1)
callDoSomething2是一种方法,另一种方法是使用
的内容。call_user_func("{$this->className}::doSomething");