func_get_args

Returns an array comprising a function's argument list

&reftitle.description; `array` `func_get_args`

Gets an array of the function's argument list.

This function may be used in conjunction with `func_get_arg` and `func_num_args` to allow user-defined functions to accept variable-length argument lists.

&reftitle.parameters; &no.function.parameters;
&reftitle.returnvalues;

Returns an array in which each element is a copy of the corresponding member of the current user-defined function's argument list.

&reftitle.errors;

Generates a warning if called from outside of a user-defined function.

&reftitle.examples;

### `func_get_args` example

    <?php
    function foo()
    {
        $numargs = func_num_args();
        echo "Number of arguments: $numargs \n";
        if ($numargs >= 2) {
            echo "Second argument is: " . func_get_arg(1) . "\n";
        }
        $arg_list = func_get_args();
        for ($i = 0; $i < $numargs; $i++) {
            echo "Argument $i is: " . $arg_list[$i] . "\n";
        }
    }

    foo(1, 2, 3);
    ?>

&example.outputs;

    Number of arguments: 3
    Second argument is: 2
    Argument 0 is: 1
    Argument 1 is: 2
    Argument 2 is: 3

### `func_get_args` example of byref and byval arguments

    <?php
    function byVal($arg) {
        echo 'As passed     : ', var_export(func_get_args()), PHP_EOL;
        $arg = 'baz';
        echo 'After change  : ', var_export(func_get_args()), PHP_EOL;
    }

    function byRef(&$arg) {
        echo 'As passed     : ', var_export(func_get_args()), PHP_EOL;
        $arg = 'baz';
        echo 'After change  : ', var_export(func_get_args()), PHP_EOL;
    }

    $arg = 'bar';
    byVal($arg);
    byRef($arg);
    ?>

&example.outputs;

    As passed     : array (
      0 => 'bar',
    )
    After change  : array (
      0 => 'baz',
    )
    As passed     : array (
      0 => 'bar',
    )
    After change  : array (
      0 => 'baz',
    )

&reftitle.notes; ¬e.func-named-params; ¬e.funcbyref;

This function returns a copy of the passed arguments only, and does not account for default (non-passed) arguments.

&reftitle.seealso;

- `...` syntax
- `func_get_arg`
- `func_num_args`
- `ReflectionFunctionAbstract::getParameters`