3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { protected $foo; function __construct($foo) { $this->foo = $foo; } function modify($foo) { $o = clone $this; if (is_callable($o, '__construct')) { $o->__construct($foo); } return $o; } function getFoo() { return $this->foo; } } $f = new Foo("foo"); var_dump($f->getFoo()); var_dump($f->modify("bar"));

preferences:
36.68 ms | 402 KiB | 5 Q