假设我有以下内容:
class Thing {
function __construct($id) {
// some functionality to look up the record and initialize the object.
return $this;
}
}
现在给定一组 ID,我想以一组实例化事物结束。类似于以下内容:
$ids = array(1, 2, 3, 4, 5);
$things = array_map(array('Thing', 'new'), $ids); // Doesn't work
当然,Thing 类没有"new"方法,“__construct”也是禁止使用的。我知道这可以通过循环 $ids 的额外步骤来完成,但是有没有一种巧妙的方法可以在每个使用 array_map 时调用“new Thing($id)”?
最佳答案
它不能工作,因为没有静态方法Thing::new
。您可以添加它或仅提供函数作为 array_map
回调:
$ids = array(1, 2, 3, 4, 5);
$things = array_map(function($id){return new Thing($id);}, $ids);
关于php - 使用 array_map 返回实例化对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6985340/