Функции самостоятельного выполнения в PHP5.3?

Я пытался заимствовать некоторые программные парадигмы от JS до PHP (просто для удовольствия). Есть ли способ сделать:

$a = (function(){ return 'a'; })(); 

Я думал, что с комбинацией use это может быть хорошим способом скрыть переменные JS style

 $a = (function(){ $hidden = 'a'; return function($new) use (&$hidden){ $hidden = $new; return $hidden; }; })(); 

сейчас мне нужно сделать:

 $temp = function(){....}; $a = $temp(); 

Кажется бессмысленным …

Функция Call Chaining, например, foo()() обсуждается для PHP5.4. До тех пор, используйте call_user_func :

 $a = call_user_func(function(){ $hidden = 'a'; return function($new) use (&$hidden){ $hidden = $new; return $hidden; }; }); $a('foo'); var_dump($a); 

дает:

 object(Closure)#2 (2) { ["static"]=> array(1) { ["hidden"]=> string(3) "foo" } ["parameter"]=> array(1) { ["$new"]=> string(10) "<required>" } } 

Начиная с PHP7, вы можете немедленно выполнить анонимные функции следующим образом:

 (function() { echo 123; })(); // will print 123