目前我这样做:
$classes = get_declared_classes();
$models = array();
foreach($classes as $class){
$class = new \ReflectionClass($class);
if($class->isSubclassOf('\\App\\Model'))
$models[] = $class;
}
但是正如你所看到我正在为每个班级创建一个反射对象,以便找出哪个是我的“模型”类的孩子。
有没有更快的方法来搜索我的子课程?
答案 0 :(得分:1)
尝试
is_subclass_of($class, '\\App\\Model', true); // or is_a()
如果您收到通知/警告,请弹出最后一个参数。第三个参数说第一个参数是一个字符串,不应该直接拒绝(默认情况下函数需要对象)。
is_subclass_of($class, '\\App\\Model'); // or is_a()
适合我!
答案 1 :(得分:0)
使用此
foreach($classes as $class){
if($class->is_Subclass_Of($class, '\\App\\Model', true))
$models[] = $class;
}
或者您可以看到is_subclass_of php.net