Php编写一个带未知参数的函数


Php writing a function with unknown parameters?

如何在php中编写一个参数数量未知的函数,例如

function echoData (parameter1, parameter2,) {
    //do something
}

但是当你调用这个函数时,你可以使用:

echoData('hello', 'hello2', 'hello3', 'hello'4);

这样可以发送更多的参数,因为参数的数量是未知的。

给那些在谷歌上发现这个话题的人。

在PHP 5.6及以上版本中,您可以使用...来指定未知数量的参数:

function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}
echo sum(1, 2, 3, 4); // 10

$numbers是一个参数数组

func_get_args()

function echoData(){
    $args = func_get_args();
}

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

关于参数的类似函数

  • func_get_arg ()
  • func_get_args ()
  • func_num_args ()

使用func_get_args()获取所有参数的数组,如下所示:

$args = func_get_args();

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

也可以使用数组:

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