Bird
Raised Fist0
PHPprogramming~5 mins

Generator return values in PHP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a generator in PHP?
A generator is a special function that can pause its execution and yield values one at a time, allowing you to iterate over data without creating an entire array in memory.
Click to reveal answer
intermediate
How do you get the return value of a generator in PHP?
You get the return value of a generator by calling the getReturn() method on the generator object after it has finished running.
Click to reveal answer
beginner
What keyword is used inside a generator to specify its return value?
The return keyword is used inside a generator to specify a final return value that can be retrieved after iteration ends.
Click to reveal answer
intermediate
What happens if you try to get the return value of a generator before it finishes?
If you try to get the return value before the generator finishes, it will throw an exception because the return value is only available after the generator has completed.
Click to reveal answer
intermediate
Why are generator return values useful?
Generator return values let you send a final result or summary after all yielded values are processed, which is helpful for things like totals or status messages.
Click to reveal answer
Which method retrieves the return value of a finished generator in PHP?
AgetReturn()
BgetReturnValue()
CreturnValue()
DfetchReturn()
What keyword inside a generator function sets the return value?
Ayield
Breturn
Cbreak
Dexit
What happens if you call getReturn() on a generator that is still running?
AReturns null
BReturns the last yielded value
CThrows an exception
DReturns false
Which of these is NOT true about generator return values?
AThey are available after iteration ends
BThey can be accessed using getReturn()
CThey are set using the return keyword
DThey replace yielded values during iteration
Why might you use a generator return value?
ATo send a final summary after iteration
BTo yield multiple values
CTo pause the generator
DTo restart the generator
Explain how to retrieve the return value from a PHP generator and why it might be useful.
Think about what happens after you finish looping through all yielded values.
You got /4 concepts.
    Describe the difference between yielding values and returning a value in a PHP generator.
    One is for producing data step-by-step, the other is for a final message.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the return statement inside a PHP generator function do?
      easy
      A. It resets the generator to the beginning.
      B. It immediately stops the generator and throws an error.
      C. It sets the final value accessible via getReturn() after iteration.
      D. It yields a value to the caller like yield does.

      Solution

      1. Step 1: Understand generator return behavior

        In PHP, return inside a generator does not yield a value but sets a final return value.
      2. Step 2: Accessing the return value

        This final value can be accessed after iteration using the getReturn() method on the generator object.
      3. Final Answer:

        It sets the final value accessible via getReturn() after iteration. -> Option C
      4. Quick Check:

        Generator return sets final value = D [OK]
      Hint: Remember: return in generators sets final value, not yields [OK]
      Common Mistakes:
      • Thinking return yields a value
      • Assuming return throws an error
      • Confusing return with yield
      2. Which of the following is the correct syntax to get the return value of a generator after iteration?
      easy
      A. $gen->getReturn();
      B. $gen->return();
      C. $gen->yieldReturn();
      D. $gen->finalValue();

      Solution

      1. Step 1: Identify the method to get generator return

        PHP provides getReturn() method on generator objects to retrieve the final return value after iteration.
      2. Step 2: Check other options

        Other methods like return(), yieldReturn(), or finalValue() do not exist in PHP generators.
      3. Final Answer:

        $gen->getReturn(); -> Option A
      4. Quick Check:

        Use getReturn() to get final value [OK]
      Hint: Use getReturn() method on generator object [OK]
      Common Mistakes:
      • Using non-existent methods like return()
      • Trying to get return value before iteration
      • Confusing yield with return
      3. What will be the output of the following PHP code?
      $gen = (function() {
          yield 1;
          yield 2;
          return 3;
      })();
      foreach ($gen as $value) {
          echo $value . ' ';
      }
      echo $gen->getReturn();
      
      medium
      A. 3
      B. 1 2 3
      C. 1 2
      D. 1 2 0

      Solution

      1. Step 1: Iterate generator yields

        The generator yields 1 and 2, so the loop prints "1 2 ".
      2. Step 2: Get the return value after iteration

        After the loop, getReturn() returns 3, which is printed immediately after.
      3. Final Answer:

        1 2 3 -> Option B
      4. Quick Check:

        Yields + return value = 1 2 3 [OK]
      Hint: Print yields in loop, then append getReturn() value [OK]
      Common Mistakes:
      • Expecting return to yield a value
      • Not calling getReturn() after iteration
      • Assuming getReturn() returns 0 by default
      4. Identify the error in this PHP generator code:
      function gen() {
          yield 1;
          return 2;
          yield 3;
      }
      $g = gen();
      foreach ($g as $v) {
          echo $v . ' ';
      }
      echo $g->getReturn();
      
      medium
      A. The yield 3; after return is unreachable code.
      B. You cannot use return inside a generator.
      C. The getReturn() method does not exist.
      D. The generator must yield at least three values.

      Solution

      1. Step 1: Analyze code flow after return

        Once return 2; executes, the function ends, so yield 3; is never reached.
      2. Step 2: Confirm other statements

        Using return in generators is valid, getReturn() exists, and no minimum yield count is required.
      3. Final Answer:

        The yield 3; after return is unreachable code. -> Option A
      4. Quick Check:

        Code after return is unreachable = B [OK]
      Hint: Code after return in generator is never executed [OK]
      Common Mistakes:
      • Thinking yield after return runs
      • Believing return is not allowed in generators
      • Ignoring unreachable code warnings
      5. You want to create a generator that yields numbers 1 to 3 and then returns their sum. Which code correctly achieves this?
      hard
      A. function gen() { yield 1; yield 2; yield 3; return 7; }
      B. function gen() { for ($i = 1; $i <= 3; $i++) { yield $i; } return $i; }
      C. function gen() { yield 1; yield 2; yield 3; return 6; yield 7; }
      D. function gen() { $sum = 0; for ($i = 1; $i <= 3; $i++) { $sum += $i; yield $i; } return $sum; }

      Solution

      1. Step 1: Check yielding numbers 1 to 3

        function gen() { $sum = 0; for ($i = 1; $i <= 3; $i++) { $sum += $i; yield $i; } return $sum; } uses a loop to yield 1, 2, 3 and sums them in $sum.
      2. Step 2: Verify other options

        The second option yields 1-3 but returns $i (4 after loop), not sum 6. The third has unreachable yield 7; after return. The fourth returns 7, wrong sum.
      3. Final Answer:

        The code that accumulates the sum during yielding -> Option D
      4. Quick Check:

        Yield loop + sum return = A [OK]
      Hint: Sum while yielding, then return sum after loop ends [OK]
      Common Mistakes:
      • Placing code after return (unreachable)
      • Returning wrong sum value
      • Not accumulating sum during yield
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard