PHP'nin yeni sürümleri ile eski kod yapısını kullanmak

PHP'nin günümüzün çok kullanılan bir betik dili olmasıyla birlikte, hazır kullanabileceğiniz kodlar üreten halka açık birçok depo ve kütüphane oluşturuldu. PHP geliştiricileri geriye dönük uyumluluğu mümkün olduğunca korumaya çalıştılar, dolayısıyla eski bir PHP sürümü ile birlikte yazılmış bir PHP kodu hiçbir değişiklik yapılmasına gerek duyulmadan (ideal olarak) yeni PHP sürümleri ile çalışabilir halde kaldı. Ancak uygulamada, bazı değişikliklerin yapılması gerekebilir.

Eski kodları etkileyen yakın geçmişe ait iki önemli değişiklik:

  • Eski $HTTP_*_VARS dizileri PHP 5.4.0'dan itibaren kullanımdan kaldırılmıştır. Bunların yerini alan süper küresel diziler PHP'nin » 4.1.0 sürümünden itibaren kullanılabilir olmuştur. Bunlar: $_GET, $_POST, $_COOKIE, $_SERVER, $_FILES, $_ENV, $_REQUEST ve $_SESSION dizileridir.
  • Dış kaynaklı değişkenler artık küresel etki alanında örtanımlı olarak yer almamaktadır. Başka bir deyişle, PHP » 4.2.0 sürümünden itibaren register_globals php.ini yönergesinin öntanımlı değeri off'tur (kapalıdır). Bu değerlere erişim için tercih edilen süper küresel dizi kullanımından yukarıda bahsettik. Eski betikler, kitaplar ve öğreticiler bu yönergenin on olduğu kabul edilerek yazılmış olabilir. Bu yönerge on olduğunda, örneğin http://mesela.dom/foo.php?id=42 URL'sine gelen bir istek ile $id değişkeni özdevinimli olarak oluşturulur. Bu yönergenin açık ya da kapalı olduğuna bakılmazsızın, $_GET['id()] daima kullanılabilir olacaktır.
Bu değişiklikler ile ilgili daha fazla bilgi için, Öntanımlı Değişkenler bölümünden ve oradaki diğer bağlantılardan faydalanabilirsiniz.