PHP tek işlevi kapsamı vardır - örneğin if yeni bir kapsam tanıtmak yok gibi kontrol yapıları. Eğer beyan değil değişkenleri kullanmak Ancak, o da akla gelmez. $i deyimi başarısız olursa main() dışında ya da eğer yok, ama yine de özgürce yankı.
Eğer bildirimleri içerecek şekilde ayarlanmış PHP'nin error_reporting varsa tanımlanmamış bir değişken kullanmaya çalışırsanız, bir E_NOTICE hata at runtime yayacaktır. Eğer olsaydı Yani:
function main() {
if (rand(0,1) == 0) {
$i = 3;
}
echo $i;
}
Kod iyi çalışır, ancak bazı infazlar (if başarılı olduğunda) ''3 yankı ve bazı bir E_NOTICE ve yankı şey yükseltmek gibi {[(2)] olacaktır } echo deyimi kapsamında tanımlı olmayacaktır.
(Işlev farklı bir kapsama sahiptir çünkü) işlevi dışında, $i tanımlanabilir asla.
Daha fazla bilgi için: http://php.net/manual/en/language.variables.scope.php