拡張
組み込みクラスの特別なバージョンを作成したい場合
(例えば、エクスポートする際に色づけしたHTMLを作成したり、
メソッドの代わりに簡単にアクセスできるメンバー変数を作成したり、
補助的なメソッドを作成したり) は、クラスを拡張してみましょう。
組み込みクラスを拡張する
visibility = Reflection::getModifierNames($this->getModifiers());
}
}
/**
* デモクラス #1
*
*/
class T {
protected function x() {}
}
/**
* デモクラス #2
*
*/
class U extends T {
function x() {}
}
// 情報を表示します
var_dump(new My_Reflection_Method('U', 'x'));
?>
]]>
&example.outputs.similar;
array(1) {
[0]=>
string(6) "public"
}
["name"]=>
string(1) "x"
["class"]=>
string(1) "U"
}
]]>
コンストラクタを上書きする場合は、
挿入するコードの前に親クラスのコンストラクタをコールすることを忘れないようにしましょう。
これを怠ると、以下のようなエラーを発生します。
Fatal error: Internal error: Failed to retrieve the reflection object