我可以检查是否有子类并获得他们的名字?

时间:2015-01-26 18:20:48

标签: php oop

'我想检查我的班级是否有子类并得到他们的名字。可能吗?我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

必须加载子类才能使其正常工作。首先,使用get_declared_classes()获取PHP知道的一组类。

然后,遍历该数组,并在每个数组上使用is_subclass_of来测试它是否是您要测试的父类的子类。

如果您的子课程未必加载,您可以使用glob()扫描文件夹中的特定模式,例如"lib/*php",并使用require_once()加载找到的文件。

答案 1 :(得分:0)

此函数将提供类中的所有子类。

function getSubclassesOf($parent) { 

     $result = array(); 
     foreach (get_declared_classes() as $class) { 
           if (is_subclass_of($class, $parent)) $result[] = $class; 
     }
     return $result; 
}