3v4l.org

run code in 300+ PHP versions simultaneously
<?php class C { function __destruct() { echo __METHOD__, "\n"; } } class D { function __destruct() { echo __METHOD__, "\n"; } } $gen = function ($c) use (&$gen) { new D($gen, yield); }; $gen = $gen(new C()); foreach ($gen as $value) { break; } $gen = null; gc_collect_cycles(); echo "DONE\n";

preferences:
20.68 ms | 404 KiB | 5 Q