Bir implicitly kapaklar kullanım için küresel olarak üst düzey değişkenleri bildirmek bir yolu var mı?
Örneğin, bu gibi kod ile çalışma durumunda:
$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')
)
.
.
.
Kapaklar gibi bir yöntemi olarak adlandırılır:
public function __construct($name, $closure = null){
$this->_name = $name;
is_callable($closure) ? $closure($this) : null;
}
So in summary/TL;DR, is there a way to implicitly declare variables as global for use in closures (or other functions I suppose) without making use of the global
anahtar kelime veya $GLOBALS
süper küresel? Strong>
Ben sık sık (http://www.vbforums.com/showthread.php?p=3905718#post3905718) başka bir forumda bu konuyu başladı