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)). - Часто используются для создания анонимных функций, которые "помнят" контекст своего создания.