Закрытие PHP и неявная глобальная переменная

Есть ли способ, чтобы можно было неявно объявлять переменные верхнего уровня глобальными для использования в закрытии?

Например, если вы работаете с таким кодом:

$a = 0; //A TOP-LEVEL VARIABLE Alpha::create('myAlpha') ->bind(DataSingleton::getInstance() ->query('c') ) ->addBeta('myBeta', function($obj){ $obj->bind(DataSingleton::getInstance() ->query('d') ) ->addGamma('myGamma', function($obj){ $obj->bind(DataSingleton::getInstance() ->query('a') ) ->addDelta('myDelta', function($obj){ $obj->bind(DataSingleton::getInstance() ->query('b') ); }); }) ->addGamma('myGamma', function($obj){ $a++; //OUT OF MY SCOPE $obj->bind(DataSingleton::getInstance() ->query('c') ) . . . 

Затворы вызываются из метода как такового:

  public function __construct($name, $closure = null){ $this->_name = $name; is_callable($closure) ? $closure($this) : null; } 

Итак, в резюме / TL; DR, существует ли способ неявно объявлять переменные глобальными для использования в закрытиях (или других функциях, которые, как я полагаю), не используя global ключевое слово или глобальный глобальный глобальный глобальный?

Я начал эту тему на другом форуме, который я часто посещал ( http://www.vbforums.com/showthread.php?p=3905718#post3905718 )

Solutions Collecting From Web of "Закрытие PHP и неявная глобальная переменная"