我有以下类(class):
class Foo {
public function __construct($id, $name, $value) {}
}
我想使用数组中的变量初始化此类,例如:
$arr = array(1, 'some name', 'some value');
$fooObj = new Foo($arr);
它应该像 JavaScript 中 ES6 的扩展运算符一样工作:
callFunc(...arr);
这可能吗?
最佳答案
在 PHP >= 5.6.0 中,使用 argument unpacking正如您使用 ...
显示的 JavaScipt 所示:
$fooObj = new Foo(...$arr);
对于以前的版本,您可以使用call_user_func_array()
,但遗憾的是不能实例化对象并传递给构造函数。
根据deceze您可以使用ReflectionClass::newInstanceArgs用于实例化您的对象:
$class = new ReflectionClass('Foo');
$fooObj = $class->newInstanceArgs($arr);
关于php - 将数组分成单独的变量并将其传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41285707/