Self Executing functions in PHP5.3?
Function Call Chaining, e.g. foo()()
is in discussion for PHP5.4. Until then, use call_user_func
:
$a = call_user_func(function(){ $hidden = 'a'; return function($new) use (&$hidden){ $hidden = $new; return $hidden; };});$a('foo'); var_dump($a);
gives:
object(Closure)#2 (2) { ["static"]=> array(1) { ["hidden"]=> string(3) "foo" } ["parameter"]=> array(1) { ["$new"]=> string(10) "<required>" }}
As of PHP7, you can immediately execute anonymous functions like this:
(function() { echo 123; })(); // will print 123