3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { public function __construct(public string $bar, public string $baz) {} private function cloneModify(...$args) { $new = clone($this); foreach ($args as $k => $v) { $new->$k = $v; } return $new; } public function withBar(string $bar) { return $this->cloneModify(bar: $bar); } } $f = new Foo('a', 'b'); $f2 = $f->withBar('beep'); var_dump($f2);

preferences:
64.5 ms | 1159 KiB | 5 Q