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