Php 获取某个抽象类的声明子类,但不实例化它们
目前我是这样做的:Php 获取某个抽象类的声明子类,但不实例化它们,php,class,reflection,Php,Class,Reflection,目前我是这样做的: $classes = get_declared_classes(); $models = array(); foreach($classes as $class){ $class = new \ReflectionClass($class); if($class->isSubclassOf('\\App\\Model')) $models[] = $class; } 但正如您所看到的,我正在为每个类创建一个反射对象,以便找出哪一个是我的“model”
$classes = get_declared_classes();
$models = array();
foreach($classes as $class){
$class = new \ReflectionClass($class);
if($class->isSubclassOf('\\App\\Model'))
$models[] = $class;
}
但正如您所看到的,我正在为每个类创建一个反射对象,以便找出哪一个是我的“model”类的子类
有没有更快的方法来搜索我的子类?使用这个
foreach($classes as $class){
if($class->is_Subclass_Of($class, '\\App\\Model', true))
$models[] = $class;
}
或者您也可以看到试试看
is_subclass_of($class, '\\App\\Model', true); // or is_a()
如果收到通知/警告,请弹出最后一个参数。第三个表示第一个参数是字符串,不应直接拒绝(函数默认需要对象)
为我工作 你的意思是($class,\\App\\Model',true)<代码>警告:is_子类_of()正好需要2个参数,给定3个。。我知道这不是医生说的……我得到了PHP5.3。阅读手册。3个论点。旧版PHP的最后一个弹出窗口。我知道文档上说了什么。。。。。我正在
PHP5.3
上测试它。。只是说这是一个新的有趣的错误…弹出最后一个参数。第三个说第一个参数是字符串,不应直接拒绝。@Alex肯定是。跳过一个实例化:)
is_subclass_of($class, '\\App\\Model'); // or is_a()