3v4l.org

run code in 300+ PHP versions simultaneously
<?php class A { private string $foo; public function __construct() { unset($this->foo); } public function do() { $this->foo = 'bar'; print $this->foo . PHP_EOL; } public function __set($name, $value) { print "called __set\n"; if ($name === 'foo') $this->foo = $value; } } $a = new A(); $a->do();
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.7
called __set bar

preferences:
107.45 ms | 402 KiB | 90 Q