将参数数组传递给对象构造函数

Sho*_*hoe 10 php oop

如何调用对象构造函数传递参数数组,以便具有:

$array = array($param1, $param2);
Run Code Online (Sandbox Code Playgroud)

我可以打电话

$abc = new Abc($param1, $param2);
Run Code Online (Sandbox Code Playgroud)

考虑到我不知道在阵列中可以设置多少参数.有类似的东西call_object('Abc', array($param1, $param2))吗?

小智 16

如何使用...(splat operator)?

$array = array($param1, $param2);
$abc = new Abc(...$array); // equal to: new Abc($param1, $param2)
Run Code Online (Sandbox Code Playgroud)

PHP 5.6是必需的.


Dar*_*ine 6

最好的方法是使用存储参数的数组或对象,然后传递该数组/对象

另一种方法是使用反射(http://de2.php.net/Reflection)使用newInstanceArgs(http://de2.php.net/manual/de/reflectionclass.newinstanceargs.php)