3v4l.org

run code in 500+ 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";
Output for 8.1.13 - 8.1.34, 8.2.0 - 8.2.32, 8.3.0 - 8.3.33, 8.4.1 - 8.4.24, 8.5.0 - 8.5.9
C::__destruct DONE
Output for 8.1.0 - 8.1.12
DONE C::__destruct
Output for 8.0.26 - 8.0.30
C::__destruct DONE D::__destruct
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.25
DONE C::__destruct D::__destruct

preferences:
99.53 ms | 1292 KiB | 4 Q