В версии PHP 5.6 и выше список аргументов может содержать многоточие (...), чтобы показать, что функция принимает переменное количество аргументов.
// пример суммирования аргументов переданных в функцию function sum(...$numbers) { $acc = 0; foreach ($numbers as $n) { $acc += $n; } return $acc; } echo sum(1, 2, 3, 4); // выведет 10
Многоточие (...) можно использовать при вызове функции, чтобы распаковать массив (array) или Traversable переменную в список аргументов.
// выполняет сложение аргументов function add($a, $b) { return $a + $b; } echo add(...[1, 2]); // выведет 3 $a = [1, 2]; echo add(...$a); // выведет 3
Также можно добавить подсказку типа перед (...). В этом случае PHP будет следить, чтобы все аргументы обработанные многоточием (...) были того же типа, что указан в подсказке.
// пример суммирования аргументов переданных в функцию с привязкой типа function sum(int ...$numbers) { $acc = 0; foreach ($numbers as $n) { $acc += $n; } return $acc; } $numbers = [30, 15]; echo sum(...$numbers); // выведет 45 echo sum(30, 10); // выведет 40
nail361 16.04.2017 18:06
я думал такое только в JAVA или С# есть, полезная вещь, ещё бы перегрузку функций сделали
Nogard7491 16.04.2017 19:10
было бы неплохо)