array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.func-get-args.php', 1 => 'func_get_args', ), 'up' => array ( 0 => 'ref.funchand.php', 1 => 'Функции управления функциями', ), 'prev' => array ( 0 => 'function.func-get-arg.php', 1 => 'func_get_arg', ), 'next' => array ( 0 => 'function.func-num-args.php', 1 => 'func_num_args', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/funchand/functions/func-get-args.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
func_get_args — Возвращает массив, который содержит список аргументов функции
Функция получает массив, который содержит список аргументов функции.
Функцию допускается вызывать с функциями 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);
?>
Результат выполнения приведённого примера:
Замечание:
Начиная с PHP 8.0.0 семейство функций func_*() предназначено для большей прозрачности в отношении именованных аргументов, обрабатывая аргументы так, как если бы все они были переданы позиционно, а отсутствующие аргументы заменяются их значениями по умолчанию. Функция игнорирует набор неизвестных именованных вариативных аргументов. К собранным неизвестным именованным аргументам можно получить доступ только через вариативный параметр.
Замечание:
Если аргументы были переданы по ссылке, то все изменения аргументов будут отражены на возвращаемых функцией значениях. В PHP 7 также будут возвращены текущие значения, если аргументы переданы по значению
Замечание: Функция возвращает только копии аргументов, которые передали, и не возвращает значения по умолчанию для аргументов, которые не передавали.
...