如何在php中获取类的所有子类

2022-08-31 00:32:12

是否可以在php中获取给定类的所有子类?


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

巧合的是,这个实现正是Vadim所链接的问题中给出的那个。


答案 2

使用 PHP 7.4:

$children = array_filter(get_declared_classes(), fn($class) => is_subclass_of($class, MyClass::class)); 

推荐