Переменное количество аргументов функции
30 июл. 2015 г.(обновлено 3 нояб. 2017 г.)
До PHP 5.6:
function sum() {
$sum = 0;
foreach (func_get_args() as $n) {
$sum += $n;
}
return $sum;
}
Начиная с 5.6 можно так:
function sum(...$numbers) {
$sum = 0;
foreach ($numbers as $n) {
$sum += $n;
}
return $sum;
}
Вызов echo sum(1, 2, 3, 4) и там, и там выдаст нам 10
Если нужно передать один или больше аргументов наверняка, а остальные переменными, то обычные указываем перед переменными: function someFunction($a, $b, ...$numbers) и вызываем someFunction(5, 3, 8, 6). Внутри функции получим
- $a == 5
- $b == 3
- $numbers == [8, 6]