在PHP 5.3.6中,我注意到以下内容不起作用:
class Foo{
public static $class = 'Bar';
}
class Bar{
public static function sayHello(){
echo 'Hello World';
}
}
Foo::$class::sayHello();
发行unexpected T_PAAMAYIM_NEKUDOTAYIM
. 但是,使用临时变量会导致预期的结果:
$class = Foo::$class;
$class::sayHello(); // Hello World
有谁知道这是设计使然,还是范围解析运算符如何标记的意外结果?比后者更干净的解决方法,临时变量示例?