3v4l.org

run code in 300+ PHP versions simultaneously
<?php $__CLASSES = []; $__CLASSES["Foo"] = [ "vars" => ["bar" => null], "methods" => [ "__construct" => function(&$this_, $bar) { $this_["vars"]["bar"] = $bar; }, "bar" => function(&$this_) { return $this_["methods"]["foo"]($this_); }, "foo" => function(&$this_) { static $bar; if (!$bar) { $bar = $this_["vars"]["bar"]; } return $bar; } ] ]; function __new($class, ...$args) { global $__CLASSES; $object = $__CLASSES[$class]; if (isset($object["methods"]["__construct"])) { $object["methods"]["__construct"]($object, ...$args); } return $object; } var_dump(($__temp = __new("Foo", 123))["methods"]["bar"]($__temp)); var_dump(($__temp = __new("Foo", 456))["methods"]["bar"]($__temp));

preferences:
23.4 ms | 404 KiB | 5 Q