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,你应该通过反射遍历所有声明的类:

$subclasses = array();

foreach(get_declared_classes() as $class)
{

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

}

var_dump($subclasses);

并检查结果。

编辑:如果您需要了解有关instances的信息,请迭代get_defined_vars()- 但您为什么需要知道这一点?

于 2012-08-25T00:23:23.757 回答