call_user_funcを使わないで動的にスタティックメソッドを呼ぶ(再掲)
以前、call_user_funcを使わないで動的にスタティックメソッドを呼ぶ方法を書いたんだけれどクラス名が変数じゃないと動作しないのはなんでだろう?
http://d.hatena.ne.jp/themorthem/20130117/1358429228
<?php class C { public static $foo = 123; } $a = "C"; echo $a::$foo;
上記は動く。が、クラスを参照する際の変数をオブジェクトのプロパティにするとパースエラーになる。
<?php class C { public static $foo = 123; } class B{ public $b = "C"; } $a = "C"; echo ($b->b)::$foo;
PHP Parse error: syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM), expecting ',' or ';' in /home/hTpViQ/prog.php on line 11
ideone.comのPHP5.4.4-12でエラー出てる。
そのうちなんとかなってほしい。