Sobes.tech
Middle
139
questionbank

Что такое замыкание в PHP?

Ответ от нейросети

sobes.tech AI

Функция-объект с возможностью захватывать переменные из области видимости родителя, в которой она была создана, даже после того, как родительская область видимости завершила свое выполнение.

<?php
// Замыкание, захватывающее $factor
$multiplyBy = function ($factor) {
    return function ($number) use ($factor) {
        return $number * $factor;
    };
};

$double = $multiplyBy(2);
$triple = $multiplyBy(3);

echo $double(10); // Вывод: 20
echo $triple(10); // Вывод: 30

Основные особенности:

  • Представляют собой экземпляры класса Closure.
  • Могут наследовать переменные из родительской области видимости с помощью ключевого слова use.
  • Наследованные переменные наследуются по значению, если явно не указано наследование по ссылке (use (&$variable)).
  • Часто используются для создания анонимных функций, которые "помнят" контекст своего создания.