Стрелочные функции (arrow function) позволяют упростить запись анонимных функций, которые возвращают некоторое значение. И при этом стрелочные функции автоматически имеют доступ к переменным из внешнего окружения.
Стрелочная функция определяется с помощью оператора fn:
fn(параметры) => действия;
После оператора fn
в скобках идет список параметров. Затем указывается оператор =>. А после него располагаются
действия функции, которые возвращают некоторый результат.
Например:
$a = 8; $b = 10; $closure = fn($c) => $a + $b + $c; $result = $closure(22); // 40
В данном случае определение стрелочной функции
$closure = fn($c) => $a + $b + $c;
Фактически будет аналогично:
$closure = function($c) use($a, $b) { return $a + $b + $c; };
Только в отличие от стандартных анонимных функций стрелочный функции предоставляют более лаконичный синтаксис.
Также стрелочные функции могут применяться в качестве параметров функции:
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";