3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { public $bar = 1; public function bar(?int $bar = null): Foo { $this->bar = $bar ?? $this->bar; return $this; } public function copy(?int $bar = null): Foo { return $this->fork()->bar($bar ?? $this->bar); } public function fork(): Foo { return clone $this; } } $a = new foo(); $a2 = $a->copy(); $b = $a->copy(2); $b2 = $a->copy(); $c = $b->copy(3); $c2 = $b->copy(); var_dump( $a->bar, $a2->bar, $b->bar, $b2->bar, $c->bar, $c2->bar );

preferences:
29.11 ms | 404 KiB | 5 Q