(PHP 4, PHP 5, PHP 7, PHP 8)
func_get_arg — Вернуть элемент из списка аргументов
Возвращает указанный аргумент из списка аргументов пользовательской функции.
Эта функция может быть использована совместно с func_get_args() и func_num_args() для создания функций с переменным количеством аргументов.
position
Номер аргумента. Аргументы функции считаются с нуля.
Возвращает указанный аргумент или false
в случае возникновения ошибки.
Генерирует предупреждение при вызове вне определения функции, или
если position
больше реально переданного
количества аргументов.
Пример #1 Пример использования func_get_arg()
<?php
function foo()
{
$numargs = func_num_args();
echo "Количество аргументов: $numargs\n";
if ($numargs >= 2) {
echo "Второй аргумент: " . func_get_arg(1) . "\n";
}
}
foo(1, 2, 3);
?>
Результат выполнения данного примера:
Количество аргументов: 3 Второй аргумент: 2
Пример #2 Пример передачи аргументов по ссылке и по значению с func_get_arg()
<?php
function byVal($arg) {
echo 'Передан : ', var_export(func_get_arg(0)), PHP_EOL;
$arg = 'baz';
echo 'После изменения : ', var_export(func_get_arg(0)), PHP_EOL;
}
function byRef(&$arg) {
echo 'Передан : ', var_export(func_get_arg(0)), PHP_EOL;
$arg = 'baz';
echo 'После изменения : ', var_export(func_get_arg(0)), PHP_EOL;
}
$arg = 'bar';
byVal($arg);
byRef($arg);
?>
Результат выполнения данного примера:
Замечание:
Начиная с PHP 8.0.0, семейство функций func_*() предназначено для большей прозрачности в отношении именованных аргументов, обрабатывая аргументы так, как если бы все они были переданы позиционно, а отсутствующие аргументы заменяются их значениями по умолчанию. Функция игнорирует набор неизвестных именованных вариативных аргументов. К собранным неизвестным именованным аргументам можно получить доступ только через вариативный параметр.
Замечание:
Если аргументы были переданы по ссылке, то все изменения аргументов будут отражены на возвращаемых функцией значениях. В PHP 7 также будут возвращены текущие значения, если аргументы переданы по значению
Замечание: Эта функция возвращает только копии переданных аргументов, и не возвращает значения по умолчанию (непереданных) аргументов.