0

次のようなクラスがあるとしましょう:

class father {
    function __construct() {
        $msg = "Blah...\n";
        print $msg;
    }

    function doSomething() {
        $msg = get_class($this) . " does something...\n";
        print $msg;
    }
}

そして、次のような子クラス:

class child extends father {
    function __construct() {
        $this->doSomething()
    }
}

と:

class eldest extends father {
    function __construct() {
        $this->doSomething()
    }
}

父クラスの子 (この場合は子と最年長)の現在のインスタンスの配列を返す方法はありますか?

4

1 に答える 1

1

を拡張するすべてのクラスを取得するfatherつもりなら、Reflectionを介して宣言されたすべてのクラスを巡回する必要があります。

$subclasses = array();

foreach(get_declared_classes() as $class)
{

    $reflection = new ReflectionClass($class);  
    $reflection -> isSubClassOf('father') && $subclasses[] = $class;

}

var_dump($subclasses);

そして、結果を確認してください。

編集:インスタンスについて知る必要がある場合は、繰り返しますget_defined_vars()が、なぜこれを知る必要があるのですか?

于 2012-08-25T00:23:23.757 に答える