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
これが設計によるものなのか、それともスコープ解決演算子のトークン化などの意図しない結果なのか、誰にもわかりますか? 後者の一時変数の例よりもクリーンな回避策はありますか?