2010-08-03 100 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

相關問題