Bird
Raised Fist0
PHPprogramming~5 mins

Yield keyword behavior in PHP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the yield keyword do in PHP?
The yield keyword allows a function to return a value to the caller without losing its state, enabling the function to be resumed later to produce a sequence of values one at a time.
Click to reveal answer
beginner
How is yield different from return in PHP?
return ends the function and sends a single value back, while yield pauses the function, sends a value back, and allows the function to continue from where it left off when called again.
Click to reveal answer
intermediate
What type of object does a function using yield return in PHP?
It returns a Generator object, which can be iterated over to get each yielded value one by one.
Click to reveal answer
intermediate
Can yield send keys along with values? How?
Yes, you can use yield key => value; to send both a key and a value, which is useful when iterating over the generator with keys.
Click to reveal answer
intermediate
Why use yield instead of building an array in PHP?
Using yield saves memory because it generates values one at a time instead of creating a full array in memory, which is helpful for large data sets or infinite sequences.
Click to reveal answer
What does the yield keyword return when used inside a PHP function?
AA Generator object
BAn array
CA string
DA boolean
Which statement about yield is true?
A<code>yield</code> pauses the function and returns a value
B<code>yield</code> immediately ends the function
C<code>yield</code> returns all values at once
D<code>yield</code> is used to declare variables
How do you send a key and value using yield?
Ayield value => key;
Byield (key, value);
Cyield key => value;
Dyield key, value;
Why might you prefer yield over returning an array?
AIt converts values to strings
BIt runs faster because it returns all values immediately
CIt automatically sorts the values
DIt uses less memory by generating values one at a time
What happens if you call a function with yield multiple times?
AIt returns the last yielded value only
BIt produces a sequence of values, one per call to the generator
CIt throws an error
DIt returns an array of all yielded values
Explain how the yield keyword works in PHP and how it differs from return.
Think about how <code>yield</code> lets a function produce multiple values over time.
You got /5 concepts.
    Describe a situation where using yield is better than returning an array.
    Consider when you have many values but don't want to store them all at once.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the yield keyword do in a PHP function?
      easy
      A. It returns a value and pauses the function, resuming later to produce more values.
      B. It immediately stops the function and returns a single value.
      C. It creates a new variable inside the function.
      D. It converts the function into a class method automatically.

      Solution

      1. Step 1: Understand yield behavior

        The yield keyword pauses the function and returns a value without ending it.
      2. Step 2: Compare with return

        Unlike return, yield allows the function to resume and produce more values later.
      3. Final Answer:

        It returns a value and pauses the function, resuming later to produce more values. -> Option A
      4. Quick Check:

        Yield pauses and resumes function = A [OK]
      Hint: Yield pauses function to produce values one by one [OK]
      Common Mistakes:
      • Confusing yield with return which ends function
      • Thinking yield creates variables
      • Assuming yield converts function to class method
      2. Which of the following is the correct syntax to yield values from a function in PHP?
      easy
      A. yield($value);
      B. return yield $value;
      C. yield => $value;
      D. yield $value;

      Solution

      1. Step 1: Recall yield syntax

        The correct syntax to yield a value is simply yield $value; inside the function.
      2. Step 2: Check other options

        Options B, C, and D use invalid or incorrect syntax for yield in PHP.
      3. Final Answer:

        yield $value; -> Option D
      4. Quick Check:

        Simple yield syntax is 'yield $value;' [OK]
      Hint: Yield uses simple 'yield $value;' syntax [OK]
      Common Mistakes:
      • Adding return before yield
      • Using arrow (=>) with yield
      • Calling yield like a function
      3. What will be the output of this PHP code?
      function gen() {
        yield 1;
        yield 2;
        yield 3;
      }
      foreach (gen() as $val) {
        echo $val . ' ';
      }
      medium
      A. 1 2 3
      B. Array
      C. 123
      D. Error: yield not allowed here

      Solution

      1. Step 1: Understand generator yields

        The function gen() yields values 1, 2, and 3 one by one.
      2. Step 2: foreach prints each yielded value

        The foreach loop prints each value followed by a space, so output is '1 2 3 '.
      3. Final Answer:

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

        Yielded values printed with spaces = B [OK]
      Hint: Yield outputs values one by one in foreach loop [OK]
      Common Mistakes:
      • Expecting concatenated string without spaces
      • Thinking yield returns an array
      • Assuming syntax error with yield
      4. Identify the error in this PHP code using yield:
      function numbers() {
        yield 1
        yield 2;
      }
      foreach(numbers() as $n) {
        echo $n;
      }
      medium
      A. foreach loop syntax is wrong
      B. Missing semicolon after first yield statement
      C. Cannot use yield inside a function
      D. Yield must be followed by parentheses

      Solution

      1. Step 1: Check yield statements

        The first yield statement is missing a semicolon at the end, causing a syntax error.
      2. Step 2: Validate other parts

        Using yield inside a function and foreach syntax are correct; yield does not require parentheses.
      3. Final Answer:

        Missing semicolon after first yield statement -> Option B
      4. Quick Check:

        Each yield needs semicolon [OK]
      Hint: Check semicolons after yield statements [OK]
      Common Mistakes:
      • Forgetting semicolon after yield
      • Thinking yield needs parentheses
      • Assuming foreach syntax error
      5. Given this PHP function using yield:
      function filterPositive(array $numbers) {
        foreach ($numbers as $num) {
          if ($num > 0) {
            yield $num;
          }
        }
      }
      
      $values = [-2, 0, 3, 5, -1];
      foreach (filterPositive($values) as $val) {
        echo $val . ',';
      }

      What is the output?
      hard
      A. 0,3,5,
      B. -2,0,3,5,-1,
      C. 3,5,
      D. Error: yield cannot be used with if

      Solution

      1. Step 1: Analyze filtering condition

        The function yields only numbers greater than 0, so it skips -2, 0, and -1.
      2. Step 2: Identify yielded values

        Only 3 and 5 satisfy the condition and are yielded, printed with commas.
      3. Final Answer:

        3,5, -> Option C
      4. Quick Check:

        Yield filters positive numbers only = D [OK]
      Hint: Yield can filter values with if condition [OK]
      Common Mistakes:
      • Including zero or negative numbers
      • Thinking yield can't be inside if
      • Expecting all values printed
      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