Generators help create values one at a time without using a lot of memory. They make it easier to work with big data step by step.
0
0
Why generators are needed in PHP
Introduction
When you want to process large lists without loading everything into memory.
When you need to read big files line by line.
When you want to create a sequence of numbers or data on the fly.
When you want to pause and resume a function to save resources.
When you want to improve performance by not waiting for all data at once.
Syntax
PHP
<?php function generatorExample() { yield 1; yield 2; yield 3; } foreach (generatorExample() as $value) { echo $value . "\n"; }
yield is used to return values one by one.
Generators pause after each yield and resume when needed.
Examples
This example shows a simple generator that yields numbers 1 to 3.
PHP
<?php function countToThree() { yield 1; yield 2; yield 3; } foreach (countToThree() as $number) { echo $number . "\n"; }
This generator creates an infinite sequence of numbers but we stop after 5.
PHP
<?php function infiniteNumbers() { $i = 0; while (true) { yield $i++; } } foreach (infiniteNumbers() as $num) { if ($num > 5) break; echo $num . "\n"; }
Sample Program
This program uses a generator to produce numbers from 1 to 1,000,000 but only prints the first 5. It shows how generators save memory by not creating the whole list at once.
PHP
<?php function bigDataGenerator() { for ($i = 1; $i <= 1000000; $i++) { yield $i; } } $count = 0; foreach (bigDataGenerator() as $value) { echo $value . "\n"; $count++; if ($count >= 5) break; // Stop after 5 to avoid too much output }
OutputSuccess
Important Notes
Generators are memory efficient because they produce values only when needed.
You can use yield inside loops to generate large sequences easily.
Generators help keep your code clean and simple when working with big data.
Summary
Generators create values one by one, saving memory.
They are useful for big data or infinite sequences.
Use yield to pause and resume functions easily.