3v4l.org

run code in 300+ PHP versions simultaneously
<?php class FooNoMoreException extends Exception {} class Foo { protected $count = 500; public function step() { if (!$this->count) { throw new FooNoMoreException('No more steps to take.'); } $this->count--; } } $f = new Foo; try { while ($f->step() || true) {} } catch (FooNoMoreException $e) {} $d = new Foo; while (1) { try { $d->step(); } catch (FooNoMoreException $e) { break; } } var_dump($f); var_dump($d);

preferences:
43.96 ms | 402 KiB | 5 Q