
class Foo {
public $x;
function __construct() {
$this->x = function() { return 'lambda-huyambda!'; };
}
}
$o = new Foo;
# echo $o->x(); // oops
echo $o->x->__invoke(); // OMG!
class Foo
{
public $x;
function __construct()
{
$this->x = function() { return 'lambda-huyambda!'; };
}
function __call($name, $argv)
{
if ( isset($this->$name) && $this->$name instanceof Closure )
return $this->$name->__invoke($argv);
}
}
$o = new Foo;
echo $o->x();