gpt4 book ai didi

php - 在 PHP 中自动查找子类

转载 作者:可可西里 更新时间:2023-10-31 23:32:26 27 4
gpt4 key购买 nike

我想做的是找到所有扩展某个基类的子类。

这与 https://stackoverflow.com/a/436204/1369417 非常相似, 除了类将不会在调用函数时加载。

本质上,我希望做的是:

  1. 将所有 PHP 文件包含在一个目录中。
  2. 测试每个 include 是否引入了基类的新子类。

但我想在一个独立的 PHP 环境中进行包含,这样我就不会受到包含 PHP 文件可能引入的任何错误和警告的影响。

这是一个小例子:

BaseClass.php

<?php
abstract class BaseClass {}
?>

FirstSubclass.php

<?php
class FirstSubclass extends BaseClass {}
?>

Blah.php

<?php
class SecondSubclass extends BaseClass {}
?>

badcode.php

<?php
adfgklmdflgksdfge@#4234t0q3
?>

ma​​in.php

<?php
require('BaseClass.php');
print_r(find_subclasses(BaseClass));
?>

预期输出

Array (
[FirstSubclass.php] => FirstSubclass,
[Blah.php] => SecondSubclass,
)

最佳答案

使用这个函数

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

来自 how to obtain all subclasses of a class in php

关于php - 在 PHP 中自动查找子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14973510/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com