3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { private $cb; private $bar; public function __construct($cb) { $this->cb = $cb; unset($this->baz); } public function & __get($name) { if (! isset($this->$name)) { $cb = $this->cb; $cb(['bar' => & $this->bar]); } return $this->$name; } } $foo = new Foo(function ($properties) { $properties['bar'] = 'baz'; }); var_dump($foo->bar);

preferences:
24.39 ms | 402 KiB | 5 Q