Php写一个参数未知的函数?

时间:2011-08-22 11:47:07

标签: php

我如何在php中使用未知数量的参数编写函数,例如

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

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

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

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

4 个答案:

答案 0 :(得分:12)

func_get_args()

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

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

关于参数的类似函数

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

答案 1 :(得分:10)

仅适用于在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是一个参数数组。

答案 2 :(得分:2)

使用func_get_args()来检索所有参数的数组:

$args = func_get_args();

然后你可以使用数组或迭代它,无论你的用例最合适。

答案 3 :(得分:0)

您也可以使用数组:

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

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