Значения по умолчанию
Значения по умолчанию
Значениями по умолчанию разрешается указывать скалярные значения, массивы, объекты или специальный тип null ( с версии php81 )
function makecoffee($types = array("капучино"), $coffeeMaker = NULL)
{
....
Источник: https://www.php.net/manual/ru/functions.arguments.php
Списки аргументов переменной длины
Списку параметров разрешается содержать оператор ..., чтобы показать, что функция принимает переменное количество аргументов. Переменная получит аргументы как массив
Разрешается также добавлять перед оператором ... объявление типа
Разрешается также передавать аргументы переменной длины по ссылке, для этого перед оператором ... указывают амперсанд (&)
function sum(...$numbers) {
$acc = 0;
foreach ($numbers as $n) {
$acc += $n;
}
return $acc;
}
#Оператор ... с типом
function total_intervals($unit, DateInterval ...$intervals) {}
Источник: https://www.php.net/manual/ru/functions.arguments.php
Именованные аргументы
Именованные аргументы передают в функцию на основе имени, а не позиции параметра
Именованные аргументы передают по имени параметра, за которым идёт двоеточие и значение аргумента
Разрешается комбинировать именованные аргументы с позиционными. Тогда именованные аргументы должны идти после позиционных. Разрешается также передавать только часть необязательных аргументов функции, независимо от порядка аргументов
myFunction(paramName: $value);
#Объединение именованных аргументов с позиционными аргументами
htmlspecialchars($string, double_encode: false);
#Пример передачи именованных аргументов после распаковки
function foo($a, $b, $c = 3, $d = 4) {
return $a + $b + $c + $d;
}
var_dump(foo(...[1, 2], d: 40)); // 46
var_dump(foo(...['b' => 2, 'a' => 1], d: 40)); // 46
Источник: https://www.php.net/manual/ru/functions.arguments.php