我想实例化一个类,它需要任意数量的构造函数参数。
假设我有一个类 Man,它在构造函数中有两个参数。
class Man
{
protected $name;
protected $age;
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
然后我有参数:
$params = array()
$params['name'] = 'Jack';
$params['age'] = 55;
这就是我实例化一个类的方式:
$jack = new Man($params['name'], $params['age']);
现在我想要实现的是 params 数组可以是任意大小,2、3、4、任何大小,并且我要实例化的类将具有相同数量的参数。
所以唯一困扰我的是如何自动创建变量?有提取功能,但它返回变量的数量:(
我需要这样的东西:
$jack = new Man($name, $age);
但这应该是自动创建的。该脚本只知道 params 数组,它需要将所有数组值作为变量推送。
最接近的事情是这样的:
$jack = new Man(extract($params));
但是提取函数返回数字,我需要从数组中创建变量,并将它们提供给类构造函数。
编辑:
我无法更改正在构建的类,我唯一的目标是构建该类,并在构造函数中传递它期望的变量。所以我对我建立的类没有权力,我的目标是只实例化那个类,并给她的构造函数参数。这些参数存储在 $params 数组中,但类需要它作为变量。希望它更容易掌握我想要实现的目标。
谢谢