Bir betik içerisinde, değişkenlerin erişilebilir ya da erişilemez oldukları kısımlar vardır. Buna kapsam (scope) denir. Şimdi bu erişilebilirlik de ne demek oluyor diyebilirsiniz, aşağıda belirttim. Şimdi PHP’nin altı temel kapsam kuralını inceleyelim.
– PHP’nin yerleşik süper global değişkenleri betiğin her yerinden erişilebilir durumdadır.
– Sabitler tanımlandıktan sonra her yerden erişilebilir durumdadırlar. Buna fonksiyon içerisinden erişim de dahildir.
– Global (Süper global değil) değişkenler tanımlandıkları betik içerisinde her yerden erişilebilir durumdayken, fonksiyon içinde bu durum ters etki yaratır. Yani fonksiyon içinden global değişkenlere erişemezsiniz.( Fonksiyon konusunda bunu nasıl atlatacağımızdan bahsedeceğim.)
– Fonksiyonların içerisinde global olarak tanımlanan değişkenler betiğin her yerinde geçerli olurlar. (Diğer fonksiyonlar hariç, buna yine fonksiyonlarda değineceğim. Şimdi kısaca geçelim, diğer fonksiyonlarda kullanabilmek için yine global olarak o fonksiyonda tanımlamak gerekir.)
– Fonksiyonların içinde oluşturulan statik değişkenlere fonksiyon dışından erişilemezken, aynı fonksiyon farklı bir zamanda tekrar çağırıldığında önceki değerlerini aynen taşırlar.
– Fonksiyonların içerisinde tanımlanan değişkenler o fonksiyona göre yereldirler ve betiğin çalışması fonksiyondan çıktığı anda bu değişkenler artık var olmazlar.
Şimdi PHP’nin yerleşik süper global değişkenleri inceleyelim, bu değişkenlerin tam listesi:
– $GLOBALS -> Tüm global değişkenler dizisi.
– $_SERVER -> Sunucu ortam değişkenleri dizisi.
– $_GET -> Betiğe GET metodu ile gönderilen değişkenler dizisi.
– $_POST -> Betiğe POST metodu ile gönderilen değişkenler dizisi.
– $_COOKIE -> Çerez değişkenleri dizisi.
– $_FILES -> Dosya yüklemeleri ile ilgili değişkenler dizisi.
– $_ENV -> Ortam değişkenleri dizisi.
– $_REQUEST -> Tüm kullanıcı girdilerini tutan değişkenler dizisi. ($_GET, $_POST ve $_COOKIE dahil)
– $_SESSION -> Oturum değişkenleri dizisi.
Kapsam kavramı sadece değişkenler ile sınırlı değildir, bu konuya ilerleyen makalelerimde zaman zaman değineceğim. Görüşmek üzere, şimdilik bu kadar.