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:

  1. Tworzenie generatora: Zdefiniujmy funkcję, która będzie generatorem. Użyjemy słowa kluczowego `yield` do zwracania wartości po kolei.
  2. 
    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.

  3. Iteracja po generatorze: Teraz przeiterujemy po generatorze za pomocą pętli foreach.
  4. 
    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.

  5. Generator z bardziej złożonym przykładem: Stwórzmy generator, który zwraca kwadraty liczb.
  6. 
    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!

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *