Przejdź do treści głównej
INF.03Pytanie #1555 z 1558php-skladnia-i-struktury

Przeanalizuj zachowanie generatora z instrukcją yield. Co zostanie wypisane w wyniku iteracji pętli po strukturze generatora?

php
<?php
function mojGenerator() {
    yield 1;
    yield 2;
    return 3;
}
$gen = mojGenerator();
foreach ($gen as $wartosc) {
    echo $wartosc;
}
?>
Opcje odpowiedzi:
A
123
B
12
Prawidłowa
C
3
D
Kod wygeneruje blad braku definicji tablicy
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: B (12)

Ponieważ pętla foreach operująca na obiekcie generatora odczytuje wyłącznie wartości wysyłane strumieniowo przez instrukcje yield. Końcowa instrukcja return 3 służy jedynie do określenia stanu końcowego wykonania generatora (można ją pobrać metodą getReturn()), ale jest całkowicie pomijana przez pętlę foreach.

Opcja A jest niepoprawna, ponieważ zakłada błędne dołączenie wartości zwracanej przez return do iteracji. Opcja C pomija elementy generowane przez słowo kluczowe yield. Opcja D jest niepoprawna, ponieważ generatory implementują interfejs Iterator i są natywnie obsługiwane przez pętlę foreach.

Dlaczego pozostałe opcje są nieprawidłowe?

  • A: Opcja 123 nie odpowiada prawidłowemu rozwiązaniu problemu opisanego w pytaniu.
  • C: Opcja 3 nie odpowiada prawidłowemu rozwiązaniu problemu opisanego w pytaniu.
  • D: Opcja Kod wygeneruje blad braku definicji tablicy nie odpowiada prawidłowemu rozwiązaniu problemu opisanego w pytaniu.

Chcesz poćwiczyć całą kwalifikację INF.03?

Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF03
Reklama

Podobne pytania z działu „Php skladnia i struktury”

Ten sam obszar materiału z kwalifikacji INF.03. W całej bazie znajdziesz 165 pytań z tego działu.