Стрелочные функции в PHP
Стрелочные функции (arrow function) позволяют упростить запись анонимных функций, которые возвращают некоторое значение. И при этом стрелочные функции автоматически имеют доступ к переменным из внешней области видимости.
Стрелочные функции также называют короткими замыканиями (short closures)
Итак, вкратце
- Доступны с PHP 7.4
- Начинаются с ключевого слова
fn
- Могут иметь только одно выражение, также являющееся возвращаемым значением
- Имеют доступ к переменным из внешней области видимости
Стрелочная функция определяется с помощью оператора fn. После оператора fn в скобках идет список параметров. Затем указывается оператор =>. А после него располагаются действия функции, которые возвращают некоторый результат.
$a = 8;
$b = 10;
$closure = fn($c) => $a + $b + $c;
$result = $closure(22); // 40
В данном случае определение стрелочной функции фактически будет аналогично:
$closure = function($c) use($a, $b)
{
return $a + $b + $c;
};
Только в отличие от стандартных анонимных функций стрелочный функции предоставляют более лаконичный синтаксис (fn, однозначно короче чем function).
Также стрелочные функции могут применяться в качестве параметров функции
function sum($numbers, $condition)
{
$result = 0;
foreach($numbers as $number){
if($condition($number))
{
$result += $number;
}
}
return $result;
}
$myNumbers = [-2, -1, 0, 1, 2, 3, 4, 5];
$positiveSum = sum($myNumbers, fn($n)=>$n > 0);
$evenSum = sum($myNumbers, fn($n) => $n % 2 === 0);
echo "Сумма положительных чисел: $positiveSum <br /> Сумма четных чисел: $evenSum";
Важлива інформація
України
втрати противника
орієнтовно склали: