我的问题是从类数组中获取对象数组的简洁方法。
我在array_filter()
上使用get_declared_classes()
获得的课程数组。
编辑:
我自己的尝试非常正确,事情是我忘了在回调函数中返回in_array()
的值:
$classes_array = array_filter(
get_declared_classes(),
function($class_name){
return in_array('IItem', class_implements($class_name));
}
$objects_array;
foreach($classes_array as $class){
$objects_array[] = new $class();
}
答案 0 :(得分:3)
您可以使用array_map()
,并参阅Creating PHP class instance with a string
$objects = array_map(function($v){
return new $v();
}, get_declared_classes());