【问题标题】:PHP - Getting an array of instantiated objects having an array of classesPHP - 获取具有类数组的实例化对象数组
【发布时间】:2017-06-17 23:33:59
【问题描述】:

我的问题是从类数组中获取对象数组的巧妙方法是什么。

我在get_declared_classes() 上使用array_filter() 得到的类数组。

编辑:

我自己的尝试非常正确,只是我忘记在回调函数中返回 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();
    }

【问题讨论】:

标签: php arrays class object


【解决方案1】:

可以使用array_map(),参考Creating PHP class instance with a string

$objects = array_map(function($v){
  return new $v();
}, get_declared_classes());

【讨论】:

  • 这个答案是正确的,非常感谢!但实际上它类似于我自己的尝试,所以它指出我的代码有其他问题,而不是像我之前想的那样通过new $class() 实例化对象。原来我只是忘记返回in_array()的值了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多