Home » Php » Php writing a function with unknown parameters?

Php writing a function with unknown parameters?

Posted by: admin July 12, 2020 Leave a comment

Questions:

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

function 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.

How to&Answers:

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()

Answer:

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.

Answer:

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.

Answer:

You can also use an array:

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

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