Főbb különbség: PHP egy szerveroldali szkriptnyelv, amelynek fő implementációja a webfejlesztésben. Ez azonban általános célú programozási nyelvként használható. A PHP4 és a PHP5 a PHP két verziója. A PHP4-et 2000. május 22-én adták ki. 2004. július 13-án megjelent a PHP5. A Zend Engine II hajtotta. Ez javult a PHP4-nél, és számos új funkciót tartalmazott.
A PHP egy nyílt forráskódú, kiszolgálóoldali, HTML beágyazott szkriptnyelv. Alapvetően elvégezheti a CGI más programjai által elvégzendő feladatokat, de főleg dinamikus weboldalak létrehozására szolgál. Fő előnye, hogy kompatibilis a sokféle adatbázissal. Továbbá, a PHP beszélhet hálózatokon keresztül az IMAP, az SNMP, az NNTP, a POP3 vagy a HTTP segítségével.
A PHP parancssori interfész képességgel rendelkezik, és önálló grafikus alkalmazásokban használható. A PHP parancsokat közvetlenül be lehet ágyazni egy HTML forrásdokumentumba, nem pedig egy külső fájl feldolgozására. A HTML dokumentumban a PHP szkript speciális PHP címkékben van. Ezeknek a címkéknek köszönhetően a programozó a HTML és a PHP között váltogathat, ahelyett, hogy nagy mennyiségű kódra kellene támaszkodnia a HTML kiadásához. Továbbá, mivel a PHP a kiszolgálón fut, az ügyfél nem tudja megnézni a PHP-kódot.
2004. július 13-án megjelent a PHP5. A Zend Engine II hajtotta. Ez javult a PHP4-nél, és számos új funkciót tartalmazott, mint például az objektum-orientált programozás támogatása, a PHP Data Objects (PDO) kiterjesztés és számos teljesítménynövelés. A PDO kiterjesztés egy könnyű és következetes felületet határoz meg az adatbázisok eléréséhez. A késői statikus kötést az 5.3. A PHP5-et úgy tervezték, hogy visszafelé kompatibilis legyen a PHP korábbi verzióival, és ennek következtében a PHP4-ről PHP5-re történő átkonvertálás során kis funkcionalitást kell törni.
Néhány különbség a PHP4 és a PHP5 között:
- A PHP5 eltávolította a register_globals, a mágikus idézeteket és a biztonságos módot. Ez annak a ténynek köszönhető, hogy a register_globals biztonsági nyílásokat nyitott meg azzal, hogy szándékosan lehetővé tette a futásidejű adatok befecskendezését, és a mágikus idézetek használata kiszámíthatatlan jellegű volt.
- A PHP4-et a Zend Engine 1.0 hajtotta, míg a PHP5 a Zend Engine II.
- A PHP5 a mágikus idézeteket az addslashes () függvénnyel helyettesítette, hogy elkerülje a karaktereket.
- A PHP4 inkább eljárási nyelv, míg a PHP5 objektumorientált.
- A PHP5-ben az osztály absztraktnak tekinthető.
- A PHP5 statikus módszereket és tulajdonságokat tartalmaz.
- A PHP5 egy speciális funkciót ismertet __autoload () néven
- A PHP5 lehetővé teszi, hogy egy osztályt vagy módszert véglegesnek nyilvánítson
- A PHP5 számos mágikus módszert vezet be, például __call, __get, __set és __toString
- A PHP5-ben 3 láthatósági szint van: nyilvános, magán és védett.
- A PHP5 kivételeket vezetett be.
- A PHP4-ben minden értéket, objektumokat is beleértve. Míg a PHP5-ben, minden objektum referenciával történik.
- A PHP5 bemutatja az interfészeket. Az interfészben meghatározott összes módszernek nyilvánosnak kell lennie.
- A PHP5 új hibaszintet ad meg az „E_STRICT” -nek
- A PHP5 új alapértelmezett kiterjesztéseket vezet be, mint például a SimpleXML, a DOM és az XSL, az OEM és a Hash.
- A PHP5 új funkciókat vezet be.
- A PHP5 új tartalék kulcsszavakat vezet be.
- A PHP5 további OOP-fogalmakat tartalmaz, mint a php4, például a hozzáférési specifikáció, az öröklés stb.
- A PHP5 tartalmazza a jelenlegi tartalomkezelő rendszerek jobb támogatását.
- A PHP5 a RAM csökkentett fogyasztását tartalmazza.
- A PHP5 nagyobb biztonságot nyújt a PHP szkriptek sebezhetőségének kihasználása ellen.
- A PHP5 új funkciókkal és bővítményekkel könnyebb programozást tesz lehetővé.
- A PHP5 egy új MySQL kiterjesztést vezet be a MySQLi nevű fejlesztőknek a MySQL 4.1 és újabb verzióit használó fejlesztők számára.
- A PHP5-ben az SQLite PHP-t tartalmaz.
- A PHP5 egy új, beépített SOAP bővítményt vezet be a Web Services szolgáltatással való interoperabilitásra.
- A PHP5 új SimpleXML kiterjesztést vezet be az XML-nek, mint PHP-objektumnak a könnyű eléréséhez és manipulálásához. A DOM kiterjesztéssel és fordítva is kapcsolódhat.
- A PHP5-ben a patakok jelentősen javultak, beleértve az alacsony szintű socket műveletekhez való hozzáférést is.