Еще в ноябре 2005 года на встрече в Париже разработчики обсудили новые возможности следующей, шестой, версии PHP. Интересует ли Вас, какой будет эта версия? Примите участие в опросе, который проводится на сайте рассылки.
[опрос на английском языке: PHP 6: Are you interesting in? (PHP 6: Вы зантересованы?) - YES (ДА) - NO (НЕТ)]
PHP 5 для начинающих
Переменное количество аргументов
Аннотация
Функции с произвольным количеством аргументов.
Ранее утверждалось, что количество данных, передаваемых в функцию, должно соответствовать количеству объявленных аргументов этой функции. На самом деле, начиная с PHP 4, количество передаваемых данных не должно быть меньше количества объявленных аргументов, но может быть большим. Таким образом, появляется возможность разрабатывать функции с переменным (произвольным) количеством аргументов.
Такая возможность существует благодаря наличию следующих трех встроенных функций: func_num_args(), func_get_arg() и func_get_args().
Функция func_num_args(). Возвращает количество аргументов, полученных функцией.
function foo()
{
$num = func_num_args();
print $num;
}
foo('first');
1
foo('first', 'second', 'third');
3
Функция func_get_arg(). Возвращает полученный функцией аргумент с заданным номером.
function foo()
{
$num = func_num_args();
if ($num) {
$arg = func_get_arg(0);
print "The 1st argument of $num is: $arg";
}
}
foo('first', 'second');
The 1st argument of 2 is: first
Функция func_get_args(). Возвращает массив аргументов, полученных функцией.
function foo()
{
$args = func_get_args();
print_r($args);
}
foo('first', 'second');
Array
(
[0] => first
[1] => second
)
Замечание
Все три рассмотренные функции, во-первых, не могут быть вызваны за пределами пользовательских функций, а, во-вторых, возвращаемое ими значение не может быть передано в другую функцию непосредственно (сначала его необходимо присвоить переменной и передавать уже эту переменную). Кроме того, эти функции игнорируют необязательные аргументы, которые не были переданы при вызове пользовательской функции.