将参数从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中的数组传递给构造函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章