PHP5から使えるようになってれぅ。
リフレクションについては、introにこう書いてある。
PHP: 導入 - Manual
クラス、インターフェイス、関数、メソッド、そして拡張モジュールについて リバースエンジニアリングを行うことができます。
まあ要するにリフレクションを使えば、privateメソッドでも実行が可能となるわけだ。
これでテストが楽に書けるかもしれない。
とにもかくにも、まあコードを見てみようじゃないか。
コード
<?php class Hoge { private function aaa() { print_r("書いたなコイツ\n"); } } // http://www.php.net/manual/ja/class.reflectionmethod.php // リフレクションメソッドのインスタンスを生成する $method = new ReflectionMethod('Hoge', 'aaa'); // http://jp2.php.net/manual/ja/reflectionmethod.setaccessible.php // メソッドのアクセス範囲を設定する $method->setAccessible(true); // http://www.php.net/manual/ja/reflectionmethod.invoke.php // 実行する $method->invoke(new Hoge);
結果
書いたなコイツ
なるほど。