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