Closures a zakres zmiennych
Założenie: Zademonstrujemy użycie słowa kluczowego use
w closure do modyfikacji zmiennej zewnętrznej za pomocą referencji.
Krok po kroku:
- Deklaracja zmiennej zewnętrznej: Zdefiniujmy zmienną
$liczba
. - Definicja closure z użyciem `use` i referencji: Utworzymy closure, które przyjmuje argument i dodaje go do zmiennej
$liczba
. Słowo kluczoweuse
z ampersandem (&) przed nazwą zmiennej tworzy referencję. - Wywołanie closure: Wywołajmy closure z argumentem 5.
- Wyświetlenie zmiennej: Sprawdźmy, czy wartość zmiennej
$liczba
została zmodyfikowana.
$liczba = 10;
$dodaj = function($x) use (&$liczba) {
$liczba += $x;
};
$dodaj(5);
echo $liczba; // Wyświetli 15
Ten przykład pokazuje, jak closure może modyfikować zmienne z zakresu zewnętrznego za pomocą use
i referencji. Pamiętaj, że użycie referencji zmienia oryginalną zmienną.