В PHP 5.3.6 я заметил, что следующее не работает:
class Foo{
public static $class = 'Bar';
}
class Bar{
public static function sayHello(){
echo 'Hello World';
}
}
Foo::$class::sayHello();
Выдача неожиданного T_PAAMAYIM_NEKUDOTAYIM
. Однако использование временной переменной приводит к ожидаемому результату:
$class = Foo::$class;
$class::sayHello(); // Hello World
Кто-нибудь знает, является ли это намерением или непреднамеренным результатом того, как оператор разрешения области видимости токенизируется или что-то в этом роде? Какие-нибудь более простые обходные пути, чем последний, пример временной переменной?