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 tipi değişkenler ömürlerini
doldurdular (bu değişkenler bir işlev ya da yöntem içersinde
kullanılmadan önce tanımlanmalıydılar). 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. Daha eski, $HTTP_POST_VARS gibi
$HTTP_*_VARS dizileri de hala kullanılabilmektedir.
PHP 5.0.0'dan itibaren
öntanımlı değişken dizileri
register_long_arrays yönergesi ile
iptal edilebilmektedir.
-
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.