Возвращает массив, который содержит список аргументов функции

# func_get_args

(PHP 4, PHP 5, PHP 7, PHP 8)

func_get_args — Возвращает массив, который содержит список аргументов функции

### Описание

function func_get_args(): array

Функция получает массив, который содержит список аргументов функции.

Функцию допускается вызывать с функциями func_num_args() и func_get_arg(), чтобы разрешить пользовательским функциям принимать список аргументов переменной длины.

### Список параметров

Сигнатура функции не содержит параметров.

### Возвращаемые значения

Функция возвращает массив, в котором каждый элемент — копия соответствующего члена списка аргументов текущей пользовательской функции.

### Ошибки

Функция генерирует предупреждение, если вызывается вне пользовательской функции.

### Примеры

Пример #1 Пример использования функции func_get_args()

    <?php

    function foo()
    {
        $numargs = func_num_args();

        echo "Количество аргументов: $numargs\n";

        if ($numargs >= 2) {
            echo "Второй аргумент: " . func_get_arg(1) . "\n";
        }

        $arg_list = func_get_args();

        for ($i = 0; $i < $numargs; $i++) {
            echo "Аргумент №$i: " . $arg_list[$i] . "\n";
        }
    }

    foo(1, 2, 3);

    ?>

Результат выполнения приведённого примера:

    Количество аргументов: 3
    Второй аргумент: 2
    Аргумент №0: 1
    Аргумент №1: 2
    Аргумент №2: 3

Пример #2 Пример передачи в функцию func_get_args() аргументов по ссылке и по значению

    <?php

    function byVal($arg) {
        echo 'Передан          : ', var_export(func_get_args()), PHP_EOL;
        $arg = 'baz';
        echo 'После изменения  : ', var_export(func_get_args()), PHP_EOL;
    }

    function byRef(&$arg) {
        echo 'Передан          : ', var_export(func_get_args()), PHP_EOL;
        $arg = 'baz';
        echo 'После изменения  : ', var_export(func_get_args()), PHP_EOL;
    }

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

    ?>

Результат выполнения приведённого примера:

Передан : array (
0 => 'bar',
)
После изменения : array (
0 => 'baz',
)
Передан : array (
0 => 'bar',
)
После изменения : array (
0 => 'baz',
)

### Примечания

> Замечание: Начиная с PHP 8.0.0 семейство функций func_*() стремится к большей прозрачности в отношении именованных аргументов, поскольку обрабатывают аргументы так, как если бы каждый из них передали позиционно, а аргументы, которые пропустили, заменяют значениями по умолчанию. Функция игнорирует коллекцию неизвестных именованных аргументов переменной длины. Доступ к собранным неизвестным именованным аргументам получают только через параметр с переменным количеством аргументов.

> Замечание: Изменения аргументов отразятся на значениях, которые возвращает функция, если аргументы передали по ссылке. В PHP 7 также вернутся текущие значения, если аргументы передали по значению.

> Замечание: Функция возвращает только копии аргументов, которые передали, и не возвращает значения по умолчанию для аргументов, которые не передавали.

### Смотрите также

- Синтаксис `...`
- func_get_arg() - Возвращает элемент из списка аргументов
- func_num_args() - Возвращает количество аргументов, переданных функции
- ReflectionFunctionAbstract::getParameters() - Получает параметры

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open