PHP5.2.0のReflectionProperty
本家のphp-devネタですが、PHP5.2.0では非publicなメンバーの値がReflectionProperty#getValue()で取得できなくなっちゃってますね。。。
<?php class MyClass { protected $foo = 'bar'; } $myobj = new MyClass(); $c = new ReflectionClass($myobj); $p = $c->getProperty('foo'); // ReflectionPropertyオブジェクトが返る echo $p->getValue($myobj); // 「bar」が表示されるはず ?>
PHP5.1.6では「bar」が出力されますが、PHP5.2.0では
ReflectionException: Cannot access non-public member MyClass::foo ...
となります(CentOS4.4+PHP5.2.0で確認)。リフレクションをガシガシ使っている方は注意が必要です。