3v4l.org

run code in 300+ 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.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
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:
74.92 ms | 402 KiB | 62 Q