【发布时间】:2013-05-21 21:46:48
【问题描述】:
假设我有这样的课程:
<?
class ObjectModel {
}
我还有一些其他课程,例如:
<?
class SomeNewClass extends ObjectModel {
}
class SomeOtherNewClass extends ObjectModel {
}
有没有办法根据 ObjectModel 类来获取孩子(SomeNewClass & SomeOtherNewClass)?
【问题讨论】:
-
不,您不能直接执行此操作。你为什么需要这个?一种合理的方法是在单独的配置文件中跟踪这一点,但这有点乏味。继承的重点是隐藏细节,请求继承链与那个目标直接冲突。你不应该知道。
-
您可以通过
parent::__construct()注册新孩子,但这可能很笨拙。你能澄清一下你的意图吗? -
我正在构建一个 PHP-CMS。并且其中的每个模型都继承自 ObjectModel。现在,如果控制器应该寻找一个特定的模型,它可能在一个动态路径上,那么寻找那个类并使用它会很好。例如:SomeNewClass 模型可以在 /_components/sample/_models/somenewclass.php 下,也可以在 /_brain/_components/navigation/_models/somenewclass.php 下
-
你可以得到一个所有声明类的列表'get_declared_classes()'并用'instance_of'遍历该列表