Что такое замыкание (closure)? Что такое анонимная функция?

Ответ

Анонимная функция - функция без имени, присваиваемая переменной. Замыкание - анонимная функция, захватывающая переменные из окружающей области видимости:

// Анонимная функция
$greet = function(string $name): string {
    return "Hello, $name";
};
echo $greet('PHP'); // "Hello, PHP"

// Замыкание - захват через use
$prefix = 'Hello';
$greet = function(string $name) use ($prefix): string {
    return "$prefix, $name";
};

// По ссылке
$counter = 0;
$inc = function() use (&$counter) { $counter++; };
$inc();
echo $counter; // 1

Все анонимные функции в PHP - экземпляры класса Closure.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.