当前位置: 首页 > 面试题库 >

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

司徒锐进
2023-03-14
问题内容

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


问题答案:

如果参数在数组中,则该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');


 类似资料:
  • 问题内容: 我有一个充满元素的arrayList。我想将该数组列表的元素作为参数传递给可变参数函数。 我的功能 我的ArrayList 我想将其传递给函数,就像我单独传递它们一样。 这样的事情可能吗? 提前致谢。 问题答案: 做就是了: 它将复制到给定的数组并返回它。所有vararg函数也可以为该参数采用数组,因此适用于: 所有合法电话为: 一个警告: 涉及原始数组的Vararg调用无法正常工作。

  • 问题内容: 与在或中使用的方式类似: 问题答案: 是。 如果你不理会关键字参数,这很简单并且可以工作: 如你所见,Python将为你提供一个包含所有参数的元组。 对于关键字参数,你需要将其作为单独的实际参数接受,如的所示。

  • 问题内容: 此代码无法正常工作。我想要的只是将变量发送到 正确的方法是什么?: 脚本 问题答案: myFile.php:

  • 我是的新用户,我想回忆不同变量的代码块,我想做如下事情: 这里的都是中的变量。如果我调用,这部分就可以工作了。但是,我调用的方式仍然没有告诉这个函数group by是由完成的。我怎么让它工作?

  • 问题内容: 为了不重复我的自我,我想创建一个函数来处理一些命令。 一旦我尝试运行它,我得到以下错误: 我研究了的实现,并且看起来函数签名正是我提供的。 在内部a 应该与可变参数相同,但对于编译器来说似乎不一样。 有没有办法将可变参数传递给? 问题答案: 您用另一个扩展 从语言规范的传递参数…参数 如果最终参数可分配给切片类型,则在参数后跟时可以将其作为参数的值原样传递。在这种情况下,不会创建新的切

  • 我想通过包装C 11中的std::thread类来使用我自己的Thread实现,这样我就可以像我想要的那样处理异常。 这是我的包装类: 如果没有争论,它的效果相当不错: …但如果我尝试传递可变参数: ...我在编译时收到一个错误: buildroot-2014.02/output/host/usr/i586-buildroot-linux-uclibc/include/c /4.8.2/funct