Anahtar fark: PHP, web geliştirmesinde ana uygulaması olan bir sunucu tarafı kodlama dilidir. Ancak, genel amaçlı bir programlama dili olarak kullanılabilir. PHP4 ve PHP5, PHP'nin iki sürümüdür. PHP4 22 Mayıs 2000'de serbest bırakıldı. 13 Temmuz 2004'te PHP5 serbest bırakıldı. Zend Engine II tarafından desteklenmiştir. PHP4 üzerinde bir gelişme oldu ve çeşitli yeni özellikler içeriyordu.
PHP açık kaynaklı, sunucu tarafında, HTML'ye gömülü bir betik dilidir. Temel olarak, diğer CGI programlarının yapabileceği herhangi bir görevi yerine getirebilir, ancak daha çok dinamik Web sayfaları oluşturmak için kullanılır. Başlıca avantajı, birçok veritabanı türüyle uyumlu olmasıdır. Ayrıca, PHP IMAP, SNMP, NNTP, POP3 veya HTTP kullanarak ağlar arasında konuşabilir.
PHP bir komut satırı arayüzü özelliği içerir ve bağımsız grafik uygulamalarda kullanılabilir. PHP komutları, verileri işlemek için harici bir dosyayı çağırmak yerine doğrudan bir HTML kaynak belgesine gömülebilir. HTML belgesinde, PHP betiği özel PHP etiketleri içine alınır. Bu etiketlerden dolayı, programcı HTML çıktısı almak için ağır miktarda koda güvenmek yerine HTML ve PHP arasında geçiş yapabilir. Ayrıca, sunucuda PHP yürütüldüğü için istemci PHP kodunu göremez.
13 Temmuz 2004'te PHP5 piyasaya sürüldü. Zend Engine II tarafından desteklenmiştir. PHP4 üzerinde bir gelişme oldu ve nesne yönelimli programlama için geliştirilmiş destek, PHP Veri Nesneleri (PDO) uzantısı ve sayısız performans geliştirmesi gibi çeşitli yeni özellikler içeriyordu. PDO uzantısı, veritabanlarına erişmek için hafif ve tutarlı bir arabirim tanımlar. Geç statik bağlanma 5.3 versiyonunda eklenmiştir. PHP5, PHP'nin önceki sürümleriyle geriye dönük olarak uyumlu olacak şekilde tasarlanmıştır ve bu nedenle PHP4'ten PHP5'e dönüştürülürken çok az işlevsellik kopmasıyla sonuçlanmalıdır.
PHP4 ve PHP5 arasındaki bazı farklılıklar:
- PHP5 register_globals, sihirli tırnak ve güvenli mod kaldırıldı. Bunun sebebi, register_globals'ın çalışma zamanı veri enjeksiyonuna bilerek izin vererek güvenlik açıkları açması ve sihirli tırnakların kullanımının tahmin edilemez bir doğası olmasıydı.
- PHP4, Zend Engine 1.0, PHP5 ise Zend Engine II tarafından desteklenmiştir.
- PHP5, karakterlerden kaçmak için sihirli tırnakları addslashes () işleviyle değiştirdi.
- PHP4 daha çok prosedür dilidir, PHP5 ise nesne yönelimlidir.
- PHP5'te bir sınıf Özet olarak ilan edilebilir.
- PHP5, statik yöntemler ve özellikler içerir.
- PHP5, __autoload () adında özel bir işlev sunar.
- PHP5 bir sınıf veya yöntemi Final olarak ilan etmesine izin verir.
- PHP5, __call, __get, __set ve __toString gibi birçok sihirli yöntem sunar.
- PHP5'te 3 görünürlük seviyesi vardır: Kamusal, özel ve korumalı.
- PHP5 istisnalar ortaya çıkardı.
- PHP4'te, nesneler dahil her şey değere göre iletildi. Oysa ki PHP5'te tüm nesneler referansa göre iletilir.
- PHP5 arayüzleri tanıtır. Bir arayüzde tanımlanan tüm yöntemler herkese açık olmalıdır.
- PHP5 'E_STRICT' olarak tanımlanan yeni hata seviyesini tanıtıyor
- PHP5, SimpleXML, DOM ve XSL, PDO ve Hash gibi yeni varsayılan uzantıları sunar.
- PHP5 yeni fonksiyonlar sunar.
- PHP5, bazı yeni ayrılmış anahtar kelimeler sunar.
- PHP5, php4'ten, erişim belirteci, miras vb. Gibi ek OOP kavramlarını içerir.
- PHP5, mevcut içerik yönetim sistemlerinin gelişmiş desteğini içerir.
- PHP5, azalmış RAM tüketimini içerir.
- PHP5, PHP betiklerinde güvenlik açıklarının kullanılmasına karşı arttırılmış güvenlik sunar.
- PHP5, yeni işlevler ve uzantılar yoluyla daha kolay programlama sunar.
- PHP5, MySQL 4.1 ve sonraki sürümlerini kullanan geliştiriciler için MySQLi adlı yeni bir MySQL uzantısını sunar.
- PHP5'te, SQLite PHP ile paketlenmiştir.
- PHP5, Web Servisleri ile birlikte çalışabilirlik için yepyeni bir yerleşik SOAP uzantısı sunar.
- PHP5, XML nesnelerine PHP olarak kolayca erişmek ve işlemek için yeni bir SimpleXML uzantısı sunar. Ayrıca DOM uzantısı ile tersi de olabilir.
- PHP5'te, akışlardaki düşük düzeyli soket işlemlerine erişme olanağı da dahil olmak üzere akışlar büyük ölçüde geliştirilmiştir.