Modern PHP
Generators
Generators are similar to iterators that calculate their values on demand, thus potentially using fewer resources. They can be created using the yield keyword, e.g.:
function my_generator()
{
yield 1;
yield 2;
yield 3;
}
Generators are forward-only iterators, i.e. you can only request the next value, not the previous, next but one etc. They are useful for iterating sequential data sets such as reading a file line by line (in order).