Funkcje generujące
Założenie: Zrozumieć, jak tworzyć i używać funkcji generujących w PHP do iteracji po zbiorach danych.
Krok po kroku:
- Tworzenie prostej funkcji generującej: Funkcje generujące używają słowa kluczowego `yield` do zwracania wartości po kolei, zamiast zwracać cały zbiór danych na raz. Poniższy przykład generuje liczby od 1 do 5:
- Iteracja po funkcji generującej: Możemy iterować po wartościach zwracanych przez funkcję generującą za pomocą pętli
foreach
: - Funkcja generująca z warunkiem: Możemy dodać logikę warunkową do funkcji generującej:
function generujLiczby() {
for ($i = 1; $i <= 5; $i++) {
yield $i;
}
}
Funkcja generujLiczby()
używa pętli for
do iteracji po liczbach od 1 do 5. W każdej iteracji, instrukcja yield $i;
zwraca bieżącą wartość $i
i zawiesza wykonanie funkcji. Następne wywołanie funkcji wznowi jej wykonanie od miejsca, w którym zostało przerwane.
foreach (generujLiczby() as $liczba) {
echo $liczba . " ";
} // Wyświetli: 1 2 3 4 5
Pętla foreach
iteruje po każdej wartości zwróconej przez generujLiczby()
.
function generujLiczbyParzyste($limit) {
for ($i = 1; $i <= $limit; $i++) {
if ($i % 2 == 0) {
yield $i;
}
}
}
foreach (generujLiczbyParzyste(10) as $liczba) {
echo $liczba . " ";
} // Wyświetli: 2 4 6 8 10
Ta funkcja generuje tylko liczby parzyste mniejsze lub równe $limit
.
Ten przykład pokazuje podstawowe zastosowanie funkcji generujących w PHP. Funkcje generujące są bardzo przydatne do pracy z dużymi zbiorami danych, ponieważ nie wymagają załadowania wszystkich danych do pamięci jednocześnie.
Zachęcamy do dalszego zgłębiania tematu funkcji generujących w PHP, aby w pełni wykorzystać ich potencjał!