以下の関数により、クラスやインスタンスオブジェクトに関する情報を
得ることが可能となります。オブジェクトが属するクラスの名前、その メンバープロパティ、メソッドを取得可能です。
この関数を使用することにより、オブジェクトのクラスメンバーだけで
なく親クラス(すなわちそのオブジェクトクラスの派生元)の情報を得る ことも可能です。
この例では、まず基底クラスおよびそのクラスの派生クラスを定義しま
す。基底クラスは食用か否か、色とかいった、一般的な野菜を記述しま す。サブクラス
Spinach
はその野菜の料理法と調理 済であるかどうかの情報を追加します。
続いて、これらのクラスから二つのオブジェクトのインスタンスを作成し、
親クラスを含む情報を出力します。 また、いくつかのユーティリティ関数を定義します。これらは主に変数
を格好良く表示するためのものです。
|
注意すべき大事な点ですが、上記の例ではオブジェクト
$leafy
は
Vegetable
のサブクラスであるクラス
Spinach
のインスタンスであり、 このスクリプトの最後の部分は以下のような出力となります。
[...] Parentage: Object leafy does not belong to a subclass of Spinach Object leafy belongs to class spinach a subclass of Vegetable |