June 2017
Intermediate to advanced
536 pages
9h 49m
English
Though PHP 5.5 enriched the language by introducing generator functions functionality, it lacked the return expressions alongside their yielded values. This inability of generator functions to specify return values limited their usefulness with coroutines. The PHP 7 version addressed this limitation by adding support for the return expressions. Generators are basically interruptible functions, where the yield statement flags the interruption point. Let's take a look at the following simple generator, written in the form of a self-invoking anonymous function:
$letters = (function () { yield 'A'; yield 'B'; return 'C';})();// Outputs: A Bforeach ($letters as $letter) { echo $letter;}// Outputs: Cecho $letters->getReturn(); ...