首页 > 解决方案 > 通过将参数数组传递给 __construct() 来创建对象的函数?

问题描述

我想知道是否有人知道完全实用地创建类对象的函数,类似于 call_user_func_array() 的工作方式。我想要做的是将不同数量的参数传递给 __construct()。

我需要类似的东西:

$class = create_object('myobject', $array);

有以下行为;

$class = new myobject($array[0], $array[1], $array[2], ...);

注意:这适用于通用框架组件,因此不能将整个数组作为第一个构造参数传递。

标签: phpclassobjectinstantiation

解决方案


您可以使用 PHP 的功能来做到这一点。您可以将数组解压缩为参数列表:

function create_object($type, array $args = [])
{
    return new $type(...$args);
}

不过不确定是否需要这样做。


推荐阅读