2017-06-17 93 views
1

我的問題是什麼是從類的數組中獲取對象數組的簡潔方法。PHP - 獲取具有類數組的實例化對象數組

我使用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(); 
    } 
+1

不是事件的一個例子嗎? –

+0

到目前爲止,你有嘗試過什麼嗎? –

+1

這可能會有所幫助,[用字符串創建PHP類實例](https://stackoverflow.com/a/4578343/6521116) –

回答

3

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

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

這個答案是正確的,非常感謝!但實際上它與我自己的嘗試類似,所以它指出我的代碼有其他錯誤,而不像我以前所想的那樣通過'new $ class()'實例化對象。事實證明,我忘了返回'in_array()'的值。 –