2015-08-17 25 views
7

ben olduğunu anlamıyorum ne function($x,$y) use ($z) { ...PHP neden kapanma için operatöre ihtiyaç duyuyor?

gibi bir şey ne yaptığına kullanımı operatörü biliyorum PHP diğer diller yok bu inşaat kullanır neden ?

+1

olası yineleme [Neden PHP değişkenleri $ işareti sembolüyle başlar?] (Http://stackoverflow.com/questions/3073812/why-php-variables-start-with-a-sign-symbol) –

+4

Kendiliğim ipucu, PHP'nin kapsam motorunun problemle etkili bir şekilde baş edemeyeceği ve değişkenlerin kapsamını açık bir şekilde genişletmenin daha basit olacağı olurdu. Yine, sadece bir tahmin. – deceze

+0

[Kapamalar ve lambdalar için RFC] (https://wiki.php.net/rfc/closures) bir cevaba yaklaşıyor gibi görünüyor, ancak _what_'dan daha fazlasını kapsayacak gibi görünüyor. – HPierce

cevap

0

Javascript oldukça gevşek değişken kapsam belirleme (değişkenleri global olarak bildirmeniz gerekmez). PHP, daha değişken bir kapsam belirleme özelliğine sahiptir (bir değişken, kullanılan kapsam dahilinde tanımlanmamışsa ve global ile getirilmediyse, o zaman mevcut değildir).

use bildirimi, PHP'ye bu değişkenleri kapağın içinde kullanıma sunmasını söyler (ve büyük olasılıkla aynı zamanda çöp toplayıcının kapanana kadar çöp toplayıcısını temizlememesini söyler).

İlgili konular