将参数从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);
是否有一些相当优雅的工作 b $ b
is there something fairly elegant that does work ?
答
您可以使用Reflection API:
You can use the Reflection API:
- a href =http://ua2.php.net/manual/en/reflectionclass.newinstanceargs.php =nofollow noreferrer>
ReflectionClass :: newInstanceArgs
- 根据给定的参数创建新的类实例。
示例:
$reflector = new ReflectionClass('Foo');
$foo = $reflector->newInstanceArgs(array('foo', 'bar'));