将参数从php中的数组传递给构造函数[重复]

Posted

技术标签:

【中文标题】将参数从php中的数组传递给构造函数[重复]【英文标题】:Pass arguments from array in php to constructor [duplicate] 【发布时间】:2011-03-24 16:19:29 【问题描述】:

通常,如果我想将参数从 $myarray 传递给 $somefunction 我可以在 php 中使用

call_user_func_array($somefunction, $myarray);

但是,当希望调用的函数是对象的构造函数时,这不起作用。由于相当明显的原因,它不起作用:

$myobj = new call_user_func_array($classname, $myarray);

有什么相当优雅的东西可以工作

【问题讨论】:

【参考方案1】:

您可以使用反射 API:

ReflectionClass::newInstanceArgs — 根据给定的参数创建一个新的类实例。

例子:

$reflector = new ReflectionClass('Foo');
$foo = $reflector->newInstanceArgs(array('foo', 'bar'));

【讨论】:

在 PHP 5.6 中,您还可以通过 ... 或 splat 运算符使用参数解包:php.net/manual/en/… 拆包真的很不错... 快速简单!我已经在我的新包加载器模块中使用了反射 API,这为我提供了一种方法来解释未来版本中的任意数量的参数。

以上是关于将参数从php中的数组传递给构造函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将对象数组传递给构造函数[重复]

如何将基参数从重载的构造函数传递到派生类[重复]

无法从构造函数中将数组值传递给向量

如何将参数从控制器传递给 FormType 构造函数

将数组传递给构造函数会产生大小为 1 的数组? [复制]

将构造函数值从子类传递到超类c++ [重复]