3v4l.org

run code in 300+ PHP versions simultaneously
<?php class It implements \IteratorAggregate { public function getIterator(): \Generator { yield 'foo'; Fiber::suspend(); var_dump("not executed"); } } function f() { var_dump(yield from new It()); } $iterable = f(); $fiber = new Fiber(function () use ($iterable) { var_dump($iterable->current()); $iterable->next(); var_dump("not executed"); }); $ref = $fiber; $fiber->start(); gc_collect_cycles(); ?>

preferences:
65.13 ms | 405 KiB | 5 Q