【发布时间】:2011-11-01 02:21:43
【问题描述】:
我将如何在 php 中编写一个带有未知数量参数的函数,例如
function echoData (parameter1, parameter2,) {
//do something
}
但是当你调用函数时你可以使用:
echoData('hello', 'hello2', 'hello3', 'hello'4);
这样可以发送更多的参数,因为参数的数量是未知的。
【问题讨论】:
标签: php
我将如何在 php 中编写一个带有未知数量参数的函数,例如
function echoData (parameter1, parameter2,) {
//do something
}
但是当你调用函数时你可以使用:
echoData('hello', 'hello2', 'hello3', 'hello'4);
这样可以发送更多的参数,因为参数的数量是未知的。
【问题讨论】:
标签: php
function echoData(){
$args = func_get_args();
}
请注意,虽然您可以这样做,但如果您要使用 func_get_args(),则不应在函数声明中定义任何参数 - 仅仅是因为如果/当任何已定义的参数被省略时,它会变得非常混乱
关于参数的类似函数
【讨论】:
func_get_args(),则不应在函数声明中定义任何参数 - 只是因为如果/当任何已定义的参数被省略。
仅适用于在 Google 上找到此主题的人。
In PHP 5.6 and above you can use ...指定未知数量的参数:
function sum(...$numbers) {
$acc = 0;
foreach ($numbers as $n) {
$acc += $n;
}
return $acc;
}
echo sum(1, 2, 3, 4); // 10
$numbers 是一个参数数组。
【讨论】:
使用 func_get_args() 来检索一个包含所有参数的数组:
$args = func_get_args();
然后,您可以使用该数组或对其进行迭代,只要最适合您的用例。
【讨论】:
你也可以使用数组:
<?php
function example($args = array())
{
if ( isset ( $args["arg1"] ) )
echo "Arg1!";
}
example(array("arg1"=>"val", "arg2"=>"val"));
【讨论】: