Стрелочные функции (также известные как лямбда-функции) и анонимные функции служат для создания функций без имени, которые могут быть использованы в качестве значений переменных, параметров функций или просто для выполнения некоторого действия на месте.
🚩Анонимные функции
Это функции без имени, которые часто используются для создания функций-замыканий. Замыкания позволяют функциям захватывать переменные из своей области видимости. Анонимные функции создаются с использованием ключевого слова
function.<?php
$sayHello = function($name) {
return "Привет, $name!";
};
echo $sayHello("Мир"); // Выведет: Привет, Мир!
?>
🚩Стрелочные функции
Были введены в PHP 7.4 и представляют собой более компактный способ создания анонимных функций. Они используют синтаксис
fn и автоматически захватывают переменные из внешней области видимости по значению.<?php
$factor = 10;
$multiply = fn($x) => $x * $factor;
echo $multiply(5); // Выведет: 50
?>
🚩Зачем это нужно?
🟠Удобство
Создание функций на месте без необходимости придумывать имена.
🟠Замыкания
Возможность захвата переменных из внешней области видимости.
🟠Читабельность кода
Стрелочные функции делают код более лаконичным и читаемым.
🚩Как это используется?
🟠Фильтрация и сортировка массивов
Часто используются в функциях вроде
array_filter, array_map и usort.🟠Колбэки
Передача функции в качестве аргумента в другие функции (например, для обработки событий).
<?php
$numbers = [1, 2, 3, 4, 5];
$squared = array_map(fn($n) => $n * $n, $numbers);
print_r($squared); // Выведет: Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 )
?>
Ставь 👍 и забирай 📚 Базу знаний