将参数从php中的数组传递给构造函数
问题描述:
通常,如果我想将参数从 $myarray 传递给 $somefunction,我可以在 php 中使用
Normally, if I want to pass arguments from $myarray to $somefunction I can do this in php using
call_user_func_array($somefunction, $myarray);
然而,当人们希望调用的函数是对象的构造函数时,这不起作用.由于相当明显的原因,它不起作用:
However this does not work when the function one wishes to call is the constructor for an object. For fairly obvious reasons it does not work to do:
$myobj = new call_user_func_array($classname, $myarray);
是否有一些相当优雅的东西确实有效?
is there something fairly elegant that does work ?
答
您可以使用反射 API:
You can use the Reflection API:
-
ReflectionClass::newInstanceArgs
—从给定的参数创建一个新的类实例.
示例:
$reflector = new ReflectionClass('Foo');
$foo = $reflector->newInstanceArgs(array('foo', 'bar'));