2010-08-03 97 views
26

通常情况下,如果我想用参数传递给构造器,

call_user_func_array($somefunction, $myarray); 

然而,当函数一个希望这不起作用来传递参数从$ myarray中到$ somefunction我可以在PHP这样做调用是对象的构造函数。对于相当明显的原因,这是行不通的事:

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

是有什么相当优雅是确实工作

回答

55

您可以使用反射API:

例子:

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

在PHP 5.6,你也可以使用参数通过''...''或图示操作拆包:http://php.net/manual/en/migration56。新features.php#migration56.new-features.splat – jhuet 2015-06-13 12:28:27

+0

拆包是非常好的... – 2016-07-05 22:05:13

相关问题