php - 将数组分成单独的变量并将其传递给函数

标签 php arrays

我有以下类(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/

相关文章:

php - 如何删除无序列表的起始元素符号

php - 如何在 PHP 中更改数组的键?

java - 如何相交两个排序的整数数组而不重复?

python - 将 += 与 numpy.array 和 numpy.ma.array 一起使用的奇怪行为

JavaScript 问题。接收对象 HTMLinputelement 错误

php - Mysql查询执行失败

php - 重定向 .htaccess 文件中的绝对路径

javascript - setValues 不适用于 Google Apps 脚本中的数组

c# - 函数将数组中最近的元素返回为整数

javascript - 如何随机化(洗牌)JavaScript 数组?