Php编写具有未知参数的函数?

Php编写具有未知参数的函数?,php,Php,例如,我如何用php编写一个参数未知的函数 function echoData (parameter1, parameter2,) { //do something } 但当您调用该函数时,您可以使用: echoData('hello', 'hello2', 'hello3', 'hello'4); 由于参数数量未知,因此可以发送更多参数。 请注意,虽然可以这样做,但如果要使用func_get_args(),则不应在函数声明中定义任何参数,因为如果省略任何已定义的参数,则会导致非常混

例如,我如何用php编写一个参数未知的函数

function echoData (parameter1, parameter2,) {
    //do something
}
但当您调用该函数时,您可以使用:

echoData('hello', 'hello2', 'hello3', 'hello'4);
由于参数数量未知,因此可以发送更多参数。


请注意,虽然可以这样做,但如果要使用func_get_args(),则不应在函数声明中定义任何参数,因为如果省略任何已定义的参数,则会导致非常混乱

关于参数的类似函数

  • func_get_arg()
  • func_get_args()
  • func_num_args()
使用func\u get\u args()检索所有参数的数组,如下所示:

$args = func_get_args();

然后,您可以使用数组或对其进行迭代,只要最适合您的用例。

您也可以使用数组:

<?php    
function example($args = array())
{
    if ( isset ( $args["arg1"] ) )
        echo "Arg1!";
}

example(array("arg1"=>"val", "arg2"=>"val"));

只为那些在谷歌上找到这条线索的人准备

要指定未知数量的参数,请执行以下操作:

function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4); // 10

$numbers
是一个参数数组。

可能是重复的,请注意,如果要使用
func\u get\u args()
,则不应在函数声明中定义任何参数,因为忽略任何已定义的参数都会让人非常困惑。@Dave:捕捉得很好。我会把它加到我的答案里
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4); // 10