Skip to content

Instantly share code, notes, and snippets.

@aurelijusb
Last active June 5, 2019 17:22
Show Gist options
  • Save aurelijusb/cacef3e4d57ca6e1772104e9a85079a9 to your computer and use it in GitHub Desktop.
Save aurelijusb/cacef3e4d57ca6e1772104e9a85079a9 to your computer and use it in GitHub Desktop.
VilniusPHP 0x4F: Coroutines in PHP: Simple examples

Code examples: Coroutines in PHP

Simple generator example

Usage:

php hello-corutine.php
php generators.php
php execution-simple.php
php execution-coroutines.php

Output

VilniusPHP 0x4F
VilniusPHP 0x1
VilniusPHP 0x2
VilniusPHP 0x3
VilniusPHP 0x4
VilniusPHP 0x5
VilniusPHP 0x6
VilniusPHP 0x7
VilniusPHP 0x8
VilniusPHP 0x9
VilniusPHP 0xa
VilniusPHP 0xb
VilniusPHP 0xc
VilniusPHP 0xd
VilniusPHP 0xe
VilniusPHP 0xf
VilniusPHP 0x10
VilniusPHP 0x11
VilniusPHP 0x12
VilniusPHP 0x13
VilniusPHP 0x14
VilniusPHP 0x15
VilniusPHP 0x16
VilniusPHP 0x17
VilniusPHP 0x18
VilniusPHP 0x19
VilniusPHP 0x1a
VilniusPHP 0x1b
VilniusPHP 0x1c
VilniusPHP 0x1d
VilniusPHP 0x1e
VilniusPHP 0x1f
VilniusPHP 0x20
VilniusPHP 0x21
VilniusPHP 0x22
VilniusPHP 0x23
VilniusPHP 0x24
VilniusPHP 0x25
VilniusPHP 0x26
VilniusPHP 0x27
VilniusPHP 0x28
VilniusPHP 0x29
VilniusPHP 0x2a
VilniusPHP 0x2b
VilniusPHP 0x2c
VilniusPHP 0x2d
VilniusPHP 0x2e
VilniusPHP 0x2f
VilniusPHP 0x30
VilniusPHP 0x31
VilniusPHP 0x32
VilniusPHP 0x33
VilniusPHP 0x34
VilniusPHP 0x35
VilniusPHP 0x36
VilniusPHP 0x37
VilniusPHP 0x38
VilniusPHP 0x39
VilniusPHP 0x3a
VilniusPHP 0x3b
VilniusPHP 0x3c
VilniusPHP 0x3d
VilniusPHP 0x3e
VilniusPHP 0x3f
VilniusPHP 0x40
VilniusPHP 0x41
VilniusPHP 0x42
VilniusPHP 0x43
VilniusPHP 0x44
VilniusPHP 0x45
VilniusPHP 0x46
VilniusPHP 0x47
VilniusPHP 0x48
VilniusPHP 0x49
VilniusPHP 0x4a
VilniusPHP 0x4b
VilniusPHP 0x4c
VilniusPHP 0x4d
VilniusPHP 0x4e
VilniusPHP 0x4f
Parsing started...
City: Vilnius
Language: PHP
Event: 0x4F
Finished...
Parsing started...
City: Vilnius
Parsing...
Language: PHP
Parsing...
Event: 0x4F
Finished...
<?php
function formatter()
{
$city = (yield);
print "City: $city\n";
$language = (yield);
print "Language: $language\n";
$event = (yield);
print "Event: $event\n";
}
function main()
{
$p = formatter();
print "Parsing started...\n";
$p->send("Vilnius");
print "Parsing...\n";
$p->send("PHP");
print "Parsing...\n";
$p->send("0x4F");
print "Finished...\n";
}
main();
<?php
function formatter($city, $language, $event)
{
print "City: $city\n";
print "Language: $language\n";
print "Event: $event\n";
}
function main()
{
print "Parsing started...\n";
formatter("Vilnius", "PHP", "0x4F");
print "Finished...\n";
}
main();
<?php
function generator()
{
for ($i = 1; $i < 80; $i++) {
yield "VilniusPHP 0x" . dechex($i);
}
}
$events = generator();
foreach ($events as $event) {
print "$event\n";
}
<?php
function receiver()
{
$data = (yield);
print $data . " 0x4F\n";
}
receiver()->send("VilniusPHP");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment