3v4l.org

run code in 500+ PHP versions simultaneously
<?php class Foo { public function __get($name) { echo "__get($name)\n"; return $this->bar($name); } public function bar($name) { echo "bar($name)\n"; return $this->foo; } } $foo = new Foo; echo "Calling via accessor:\n"; var_dump($foo->foo); echo "Calling method directly:\n"; var_dump($foo->bar('foo'));
Output for 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
Calling via accessor: __get(foo) bar(foo) Warning: Undefined property: Foo::$foo in /in/2nDZS on line 11 NULL Calling method directly: bar(foo) __get(foo) bar(foo) Warning: Undefined property: Foo::$foo in /in/2nDZS on line 11 NULL

preferences:
60.66 ms | 1000 KiB | 4 Q