一尘不染

如何将可变数量的参数传递给PHP函数

php

我有一个PHP函数,该函数需要可变数量的参数(使用func_num_args()func_get_args()),但是我要传递给该函数的参数数量取决于数组的长度。有没有一种方法可以使用可变数量的参数来
调用 PHP函数?


阅读 324

收藏
2020-05-26

共1个答案

一尘不染

如果参数在数组中,则该call_user_func_array函数可能会对您有兴趣。

如果您要传递的参数数量取决于数组的长度,则可能意味着您可以将它们自己打包到数组中-并将其用于第二个参数call_user_func_array

然后,您传递给该数组的元素将作为不同的参数被函数接收。

例如,如果您具有以下功能:

function test() {
  var_dump(func_num_args());
  var_dump(func_get_args());
}

您可以将参数打包到一个数组中,如下所示:

$params = array(
  10,
  'glop',
  'test',
);

然后,调用函数:

call_user_func_array('test', $params);

此代码将输出:

int 3

array
  0 => int 10
  1 => string 'glop' (length=4)
  2 => string 'test' (length=4)

即3个参数;完全类似于iof函数的调用方式:

test(10, 'glop', 'test');
2020-05-26