3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php class Foo { public $bar = 'baz'; } class FooProxy extends Foo { private $wrapped; public function __construct(Foo $foo) { $this->wrapped = $foo; unset($this->bar); } public function & __get($name) { var_dump(__METHOD__); return $this->wrapped->$name; } public function __set($name, $value) { var_dump(__METHOD__); $this->wrapped->$name = $value; } public function __isset($name) { var_dump(__METHOD__); return isset($this->wrapped->$name); } public function __unset($name) { var_dump(__METHOD__); unset($this->wrapped->$name); } } $foo = new FooProxy(new Foo()); $foo->bar; $foo->bar = 'baz'; isset($foo->bar); unset($foo->bar);
Output for 5.1.0 - 5.6.28, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.1.0
string(15) "FooProxy::__get" string(15) "FooProxy::__set" string(17) "FooProxy::__isset" string(17) "FooProxy::__unset"
Output for 5.0.0 - 5.0.5
string(15) "FooProxy::__get" string(15) "FooProxy::__set"
Output for 4.4.2 - 4.4.9
<br /> <b>Parse error</b>: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in <b>/in/FWNG5</b> on line <b>5</b><br />
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1
<br /> <b>Parse error</b>: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in <b>/in/FWNG5</b> on line <b>5</b><br />
Process exited with code 255.
Output for 4.3.2 - 4.3.4
<br /> <b>Parse error</b>: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in <b>/in/FWNG5</b> on line <b>5</b><br />
Process exited with code 255.