php - 使用 array_map 返回实例化对象数组?

标签 php object instantiation array-map

假设我有以下内容:

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/

相关文章:

php - 自动完成多列建议并防止重复

php - 使用 REST API 快速上传图片

c++ - 从堆栈对象中提取信息

javascript - 为什么这个创建数组并推送到它的单行代码不起作用?

java - 在 Java 中创建具有默认值的 Annotation 实例

php - 在哪里放置连接多个表的 SQL 查询?

php - 如何使用php将mysql数据库中的所有表显示或显示为html表

object - F# 中的内联 C# 对象创建

javascript - 通过触发器实例化 Backbone? (或者如何推迟匿名函数的执行?)

java - 给一个对象一个方法