Sobes.tech
Middle

Какво е затваряне в PHP?

sobes.tech AI

Отговор от 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 (&$променлива)).
  • Често се използват за създаване на анонимни функции, които "помнят" контекста на създаването си.