Оглавление
Реализация суммы с произвольным числом аргументов (до PHP 5.6)Современный синтаксис: оператор ... (PHP 5.6+)Типизация вариадических аргументов (PHP 7+)Правила использования вариадических параметровВывод
Функции с переменным числом аргументов в PHP
До этого момента вы изучали, как определять функции с фиксированным числом параметров. Вариадическая функция - это функция, принимающая переменное количество аргументов.
Пример: функция для суммы двух чисел
Как же сделать так, чтобы мы могли суммировать неограниченное количество аргументов?
Реализация суммы с произвольным числом аргументов (до PHP 5.6)
Чтобы функция могла принимать любое число аргументов, раньше использовали функции
func_get_args() и func_num_args():В этом примере у функции
sum() нет явных параметров. При вызове можно передать любое количество аргументов. Внутри функции func_get_args() возвращает массив всех переданных значений.Современный синтаксис: оператор ... (PHP 5.6+)
PHP 5.6 ввёл оператор
... (spread operator), который позволяет объявлять вариадические параметры более лаконично:Здесь
$numbers становится массивом всех переданных аргументов.Типизация вариадических аргументов (PHP 7+)
В PHP 7 можно указывать типы для вариадических параметров:
Теперь функция принимает только целые числа и возвращает их сумму.
Правила использования вариадических параметров
Если у функции несколько параметров, вариадическим может быть только последний.
Пример:
Если вариадический параметр указан не последним, возникнет ошибка:
Fatal error: Only the last parameter can be variadic in...В одной функции может быть только один вариадический параметр.
Вывод
- Вариадическая функция принимает переменное число аргументов.
- Для определения используйте оператор
.... - Вариадическим может быть только последний параметр функции.

