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 также вернутся текущие значения, если аргументы передали по значению.
Замечание:
Функция возвращает только копии аргументов, которые передали,
и не возвращает значения по умолчанию для аргументов, которые не передавали.