Middle
Czym jest zamknięcie w PHP?
sobes.tech AI
Odpowiedź od AI
Funkcja-obiekt z możliwością przechwytywania zmiennych z zakresu swojego twórcy, nawet po zakończeniu tego zakresu.
<?php
// Zamknięcie, które przechwytuje $factor
$multiplyBy = function ($factor) {
return function ($number) use ($factor) {
return $number * $factor;
};
};
$double = $multiplyBy(2);
$triple = $multiplyBy(3);
echo $double(10); // Wypisuje: 20
echo $triple(10); // Wypisuje: 30
Główne cechy:
- Są instancjami klasy
Closure. - Mogą dziedziczyć zmienne z zakresu nadrzędnego za pomocą słowa kluczowego
use. - Dziedziczone zmienne są dziedziczone przez wartość, chyba że wyraźnie zaznaczono dziedziczenie przez referencję (
use (&$variable)). - Często używane do tworzenia funkcji anonimowych, które "pamiętają" kontekst swojego tworzenia.