开发者

Php writing a function with unknown parameters?

How would I go about writing a function in php with an unknown number of parameters, for example

func开发者_Python百科tion echoData (parameter1, parameter2,) {
    //do something
}

But when you call the function you can use:

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

So that more parameters can be sent as the number of parameters will be unknown.


Just for those who found this thread on Google.

In PHP 5.6 and above you can use ... to specify the unknown number of parameters:

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

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

$numbers is an array of arguments.


func_get_args()

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

Be aware that while you can do it, you shouldn't define any arguments in the function declaration if you are going to use func_get_args() - simply because it gets very confusing if/when any of the defined arguments are omitted

Similar functions about arguments

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


use func_get_args() to retrieve an array of all parameters like that:

$args = func_get_args();

You can then use the array or iterate over it, whatever suits your use-case best.


You can also use an array:

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

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜