我有一个对象数组[Article(), Article(), Article()]
每个Article()
都有足够的protected properties
。
我希望能够识别哪个属性是PersistentCollection
的实例,以便在其上调用->initialize()
方法。
最后,我想要我的3个对象Array()
的新数组,仅当该属性是initialize()
PersistentCollection
方法
您是否知道动态执行此操作的有效方法?
或者它在性能方面是否过于宽泛,然后我应该在我知道它是PersistentCollection
的字段上调用方法?
感谢。
答案 0 :(得分:1)
假设$articles
是您想要处理的初始数组,这样的事情应该可以解决这个问题
$closure = function() {
foreach($this as $fieldValue) {
if($fieldValue instanceof PersistentCollection) {
$fieldValue->initialize();
}
}
};
foreach ($articles as $article) {
$initCollections = Closure::bind($closure, $article, get_class($a));
$initCollections();
}
$initCollections = Closure::bind($closure, $a, get_class($a));
$initCollections();
不确定性能,但看不出任何问题