3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { public function __construct(private Bar $bar, private string $_value = 'foo') {} public function __get(string $name) { return match($name) { 'value' => $this->_value, }; } public function __set(string $name, string $value) { switch ($name) { case 'value': $this->bar->doSomething($this); $this->_value = $value; } } } class Bar { public function doSomething(Foo $foo): void { $oldValue = $foo->value; } } $foo = new Foo(new Bar()); $foo->value = 'bar';
Output for 8.1.28 - 8.1.33, 8.2.16 - 8.2.29, 8.3.3 - 8.3.25, 8.4.1 - 8.4.12

preferences:
64.92 ms | 406 KiB | 5 Q