func_get_arg

Return an item from the argument list

&reftitle.description; `mixed` `func_get_arg` `int` `position`

Gets the specified argument from a user-defined function's argument list.

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

&reftitle.parameters;

`position`

- The argument offset. Function arguments are counted starting from zero.

&reftitle.returnvalues;

Returns the specified argument, or &false; on error.

&reftitle.errors;

Generates a warning if called from outside of a user-defined function, or if `position` is greater than the number of arguments actually passed.

&reftitle.examples;

### `func_get_arg` 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";
         }
    }

    foo(1, 2, 3);
    ?>

&example.outputs;

    Number of arguments: 3
    Second argument is: 2

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

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

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

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

&example.outputs;

    As passed     : 'bar'
    After change  : 'baz'
    As passed     : 'bar'
    After change  : '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_args`
- `func_num_args`