我需要获取扩展了另一个父类的所有声明的类。
所以例如...
class ParentClass {
}
class ChildOne extends ParentClass {
}
class ChildTwo extends ParentClass {
}
class ChildThree {
}
我需要一个输出这个的数组:
array('ChildOne', 'ChildTwo')
我是 PHP OOP 的新手,但基于一些谷歌搜索,我想出了这个解决方案。
$classes = array();
foreach( get_declared_classes() as $class ) {
if ( is_subclass_of($class, 'ParentClass') ){
array_push($classes, $class);
}
}
我想问的是,这是否是做我想做的事情的最佳实践,还是有更好的方法?全局范围将包含许多不是ParentClass
. 循环遍历所有声明的类是最好的方法吗?
编辑 (澄清目的):
我想要实现的是实例化每个扩展父类的子类。
我想$childone = new ChildOne; $childtwo = new ChildTwo;
为每个孩子做ParentClass
。