我可以检查是否有子类并获取它们的名称吗?
Can I check if there are subclasses and get their name?
我想检查一下我的 class 是否有子class 并获取他们的名字。可能吗?我怎样才能做到这一点?
必须加载子classes 才能工作。首先,使用 get_declared_classes()
.
获取 PHP 知道的 classes 数组
然后,遍历该数组,并对每个数组使用 is_subclass_of
,以测试它是否是您要测试的父 class 的子 class。
如果您的子 classes 不一定加载,您可以使用 glob()
扫描文件夹中的特定模式,例如"lib/*php"
,并使用 require_once()
.
加载找到的文件
此函数将给出 class 中的所有子classes。
function getSubclassesOf($parent) {
$result = array();
foreach (get_declared_classes() as $class) {
if (is_subclass_of($class, $parent)) $result[] = $class;
}
return $result;
}
我想检查一下我的 class 是否有子class 并获取他们的名字。可能吗?我怎样才能做到这一点?
必须加载子classes 才能工作。首先,使用 get_declared_classes()
.
然后,遍历该数组,并对每个数组使用 is_subclass_of
,以测试它是否是您要测试的父 class 的子 class。
如果您的子 classes 不一定加载,您可以使用 glob()
扫描文件夹中的特定模式,例如"lib/*php"
,并使用 require_once()
.
此函数将给出 class 中的所有子classes。
function getSubclassesOf($parent) {
$result = array();
foreach (get_declared_classes() as $class) {
if (is_subclass_of($class, $parent)) $result[] = $class;
}
return $result;
}