3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { protected $bar; public function __construct(Bar $bar) { $this->bar = $bar; } public function __get($key) { $exploded = explode('.', $key); $item = $this; do { $next = array_shift($exploded); var_dump($item, $next); if (!property_exists($item, $next)) { return null; } $item = $item->{$next}; } while ($exploded); return $item; } } class Bar { public $foo = 'test'; } $foo = new Foo(new Bar); var_dump($foo->{"bar.foo"});
Output for git.master, git.master_jit, rfc.property-hooks
object(Foo)#1 (1) { ["bar":protected]=> object(Bar)#2 (1) { ["foo"]=> string(4) "test" } } string(3) "bar" object(Bar)#2 (1) { ["foo"]=> string(4) "test" } string(3) "foo" string(4) "test"

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
42.06 ms | 401 KiB | 8 Q