Несколько paamayim nekudotayim в PHP, почему бы и нет?

В 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

Кто-нибудь знает, является ли это намерением или непреднамеренным результатом того, как оператор разрешения области видимости токенизируется или что-то в этом роде? Какие-нибудь более простые обходные пути, чем последний, пример временной переменной?

7
задан Dan Lugg 8 July 2011 в 03:23
поделиться