3v4l.org

run code in 300+ PHP versions simultaneously
<?php class my { private $a = null; protected $b = 'b'; public $c = 'c'; function __construct($b, $c) { $this->a = 'a1'; $this->b = $b; $this->c = $c; } public function test() { echo $this->a, $this->b, $this->c; } } class my_ex extends my { function __construct() { $cleaner = function () { echo "Clearing all properties", "<br>"; unset($this->a, $this->b, $this->c); }; $cleaner->bindTo($this, get_parent_class($this))->__invoke(); } function __get($name) { $lazySetter = & function($name) { echo "Lazy-loading property {$name}", "<br>"; $this->$name = "new{$name}"; return $this->$name; }; $lazySetter->bindTo($this, get_parent_class($this))->__invoke($name); } } $my = new my_ex(1,2); $my->test();
Output for 5.4.0 - 5.4.17
Parse error: syntax error, unexpected 'function' (T_FUNCTION) in /in/ns9jX on line 37
Process exited with code 255.
Output for 5.3.0 - 5.3.27
Parse error: syntax error, unexpected T_FUNCTION in /in/ns9jX on line 37
Process exited with code 255.

preferences:
178.63 ms | 1395 KiB | 53 Q