Öntanımlı Değişkenler

PHP çalıştırdığı herhangi bir betiğe çok sayıda önceden tanımlı değişken sağlar. Ancak, bu değişkenlerin çoğu hangi sunucunun çalıştığına, sunucunun sürümüne ve kurulumuna ve başka bir çok şeye bağlı olduğu için tam olarak belgelendirilememektedir. Bu değişkenlerden bazıları PHP komut satırından çalıştığında mevcut olmayacaktır. Bu değişkenlerin listesi için, lütfen Öntanımlı Değişkenler kısmına bakınız.

Uyarı

PHP 4.2.0 ve sonrasında, register_globals PHP yönergesinin öntanımlı değeri off'tur. Bu PHP'de büyük bir değişikliktir. register_globals'ın off olması betik genelinde geçerli önceden tanımlı bir gurup değişkeni etkiler. Örneğin, DOCUMENT_ROOT'u almak için $DOCUMENT_ROOT yerine $_SERVER['DOCUMENT_ROOT'], http://mesela.dom/dnm.php?id=3 adresi için $id yerine $_GET['id'] veya $HOME yerine $_ENV['HOME'] kullanmalısınız.

Bu değişiklikle ilgili bilgi için, register_globals yapılandırma yönergesini, güvenlik bölümündeki Küresel Kayıtların Kullanımı belgesini, PHP » 4.1.0 ve » 4.2.0 sürüm duyurularını okuyun.

Süper küresel diziler gibi PHP'nin Önceden Tanımlı Değişkenlerinin de kullanımı önerilmektedir.

PHP, 4.1.0 sürümünden sonra, ortam değişkenleri ve kullanıcı girdi değişkenleri ile HTTP sunucusundaki değişkenleri (eğer uygulanabiliyorsa) içeren bir takım önceden tanımlı diziler sağlamaktadır. Bu yeni diziler özel olmaktan ziyade özdevinimli olarak küreseldir, yani, özdevinimli olarak her etki alanında bulunurlar. Bu nedenle, "Süper küreseller" olarak bilinirler. (PHP'de kullanıcı-tanımlı süper küreseller için bir mekanizma yoktur.) Süper küreseller aşağıda listelenmiştir; PHP önceden tanımlı değişkenlerin açıklamaları ve doğaları ise Öntanımlı Değişkenler bölümünde listelenmiştir. Ayrıca, eskiden kalma öntanımlı değişkenlerin de ($HTTP_*_VARS) hala mevcut olduğunu bilmenizde yarar var. PHP 5.0.0'dan itibaren öntanımlı değişken dizileri register_long_arrays yönergesi ile iptal edilebilmektedir.

Bilginize: Değişken değişkenler

İşlevler veya sınıf yöntemleri içinde süper küreseller değişken değişkenleri olarak kullanılamazlar.

Bilginize:

Süper küreseller ve HTTP_*_VARS aynı anda var olabilirlerse de birbirlerinin yerine kullanılamazlar, yani birini değiştirmekle diğerini değiştirmiş olmazsınız.

Eğer variables_order yönergesine uygun değişkenler atanmamışsa, ilgili oldukları PHP önceden tanımlı dizileri de boş bırakılır.