Funkcje generujące (yield)
Założenie: Nauczymy się tworzyć generatory w PHP za pomocą słowa kluczowego `yield`, aby efektywnie przetwarzać duże zbiory danych bez konieczności ładowania ich całości do pamięci.
Krok po kroku:
- Tworzenie generatora: Zdefiniujmy funkcję, która będzie generatorem. Użyjemy słowa kluczowego `yield` do zwracania wartości po kolei.
- Iteracja po generatorze: Teraz przeiterujemy po generatorze za pomocą pętli
foreach
. - Generator z bardziej złożonym przykładem: Stwórzmy generator, który zwraca kwadraty liczb.
function generujLiczby($limit) {
for ($i = 1; $i <= $limit; $i++) {
yield $i;
}
}
Funkcja generujLiczby
używa pętli for
do iteracji przez liczby od 1 do $limit
. Słowo kluczowe yield
zwraca każdą liczbę pojedynczo, bez konieczności przechowywania wszystkich liczb w pamięci jednocześnie.
foreach (generujLiczby(10) as $liczba) {
echo $liczba . " ";
}
Pętla foreach
iteruje po wartościach zwracanych przez generator generujLiczby(10)
. Wyświetli ona liczby od 1 do 10.
function generujKwadraty($limit) {
for ($i = 1; $i <= $limit; $i++) {
yield $i * $i;
}
}
foreach (generujKwadraty(5) as $kwadrat) {
echo $kwadrat . " ";
}
Ten generator zwraca kwadraty liczb od 1 do 5.
Ten przykład pokazuje podstawowe zastosowanie generatorów w PHP. Generator pozwala na efektywne przetwarzanie dużych zbiorów danych, ponieważ nie ładuje ich wszystkich do pamięci jednocześnie. Zachęcamy do dalszego zgłębiania tematu generatorów, aby poznać ich zaawansowane możliwości!