3v4l.org

run code in 300+ PHP versions simultaneously
<?php class StatefulAdderFactory { private $x = 1; function getAdder() { return new class($this->x) { function add($y) { $this->x += $y; return $this->x; } }; } } $saf = new StatefulAdderFactory(); $adder = $saf->getAdder(); var_dump($adder->add(42)); var_dump($adder->add(21));

preferences:
43.05 ms | 402 KiB | 5 Q