TGViewer
PHP | Вопросы собесов PHP | Вопросы собесов @easy_php_ru · 2.31K subscribers
Post #2211 306
🤔 Что такое замыкание?

Это функция вместе с окружением, в котором она была создана. Замыкание позволяет функции "запомнить" переменные из внешнего контекста, даже после того, как этот контекст завершил свое выполнение. Это делает замыкания мощным инструментом для создания функций, которые могут работать с данными, доступными во время их создания.

🚩Основные особенности замыканий

🟠Доступ к внешним переменным
Функция может использовать переменные из внешнего контекста, в котором она была создана.
🟠Сохранение состояния
Замыкания могут сохранять состояние между вызовами.

🟠Инкапсуляция
Замыкания могут использоваться для создания частных данных и методов.

🚩Примеры замыканий в различных языках программирования

🟠JavaScript
В JavaScript замыкания используются очень часто. Рассмотрим простой пример:
function createCounter() {
let count = 0; // внешняя переменная

return function() { // внутренная функция
count++;
return count;
}
}

const counter = createCounter(); // создаем замыкание
console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3


🟠Python
В Python замыкания также поддерживаются:
def create_counter():
count = 0

def increment():
nonlocal count
count += 1
return count

return increment

counter = create_counter()
print(counter()) # 1
print(counter()) # 2
print(counter()) # 3


🟠PHP
В PHP замыкания реализуются через анонимные функции и использование use:
function createCounter() {
$count = 0;

return function() use (&$count) {
$count++;
return $count;
};
}

$counter = createCounter();
echo $counter(); // 1
echo $counter(); // 2
echo $counter(); // 3


🚩Применение замыканий

🟠Создание фабричных функций
Замыкания могут использоваться для создания фабричных функций, которые генерируют другие функции с определенным поведением.

🟠Инкапсуляция
Замыкания позволяют скрывать переменные и методы внутри функции, предоставляя интерфейс для взаимодействия с ними.

🟠Обработка событий
В языках, таких как JavaScript, замыкания часто используются в обработчиках событий для доступа к контексту, в котором был назначен обработчик.

🟠Мемоизация
Замыкания могут использоваться для создания функций, которые запоминают результаты предыдущих вычислений и используют их для ускорения последующих вызовов.

Ставь 👍 и забирай 📚 Базу знаний
  • 👍 1
More from @easy_php_ru
  1. Oct 13, 2026Post #2474
  2. Oct 12, 2026🤔 Что такое инкремент и декремент? Инкремент (`++`) и декремент (`--`) — это операции в P…
  3. Oct 12, 2026🤔 Как устроен типичный тест на opening point? Тест на Opening Point (OP-тест) используетс…
  4. Oct 11, 2026🤔 Для чего нужен middleware? Middleware — это промежуточный слой между запросом клиента и…
  5. Oct 11, 2026🤔 Что такое декремент? декремент — это операция, используемые для увеличения или уменьшен…
  6. Oct 10, 2026🤔 Что такое агрегатные функции? Агрегатные функции в SQL и других языках обработки данных…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →