Skip to content

Instantly share code, notes, and snippets.

@iwankgb
Created October 26, 2015 07:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iwankgb/9ecf8dfc952feac9e77f to your computer and use it in GitHub Desktop.
Save iwankgb/9ecf8dfc952feac9e77f to your computer and use it in GitHub Desktop.
Single generator
<?php
$generatorWithTwoWayCommunication = function()
{
$randomValue = mt_rand();
yield $randomValue;
$receivedFromOuterSpace = yield;
yield $receivedFromOuterSpace * $receivedFromOuterSpace;
return $receivedFromOuterSpace * $randomValue;
};
$generator = $generatorWithTwoWayCommunication();
$valueFromFirstIteration = $generator->current();
$generator->next();
$valueFromSecondIteration = $generator->send(666);
$generator->next();
$valueReturnedFromGenerator = $generator->getReturn();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment