<?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