Ključna razlika: PHP skriptni jezik na strani poslužitelja koji ima svoju glavnu implementaciju u razvoju weba. Međutim, može se koristiti kao programski jezik opće namjene. PHP4 i PHP5 su dvije verzije PHP-a. PHP4 je objavljen 22. svibnja 2000. Dana 13. srpnja 2004. izdan je PHP5. Pokreće ga Zend Engine II. To je poboljšanje u odnosu na PHP4 i uključuje različite nove značajke.
PHP je otvoreni izvorni, poslužiteljski, HTML ugrađeni skriptni jezik. To u osnovi može obavljati bilo koji zadatak koji drugi CGI programi mogu, ali se uglavnom koristi za stvaranje dinamičkih web stranica. Njegova glavna prednost je da je kompatibilan s mnogim vrstama baza podataka. Nadalje, PHP može razgovarati preko mreže koristeći IMAP, SNMP, NNTP, POP3 ili HTTP.
PHP uključuje mogućnost sučelja naredbenog retka i može se koristiti u samostalnim grafičkim aplikacijama. PHP naredbe mogu biti ugrađene izravno u HTML izvorni dokument umjesto da pozivaju vanjsku datoteku za obradu podataka. U HTML dokumentu, PHP skripta je zatvorena unutar posebnih PHP oznaka. Zbog tih oznaka programer se može mijenjati između HTML-a i PHP-a umjesto da se oslanja na velike količine koda za izlaz HTML-a. Također, kako se PHP izvršava na poslužitelju, klijent ne može vidjeti PHP kod.
Dana 13. srpnja 2004. objavljen je PHP5. Pokreće ga Zend Engine II. To je poboljšanje u odnosu na PHP4 i uključuje različite nove značajke, kao što je poboljšana podrška za objektno orijentirano programiranje, proširenje PHP Data Objects (PDO) i brojna poboljšanja performansi. PDO proširenje definira lagano i konzistentno sučelje za pristup bazama podataka. Kasnija statička vezivanja dodana je u verziji 5.3. PHP5 je također dizajniran da bude kompatibilan unatrag s ranijim verzijama PHP-a i stoga bi trebao rezultirati malom funkcionalnošću pri pretvaranju iz PHP4 u PHP5.
Neke razlike između PHP4 i PHP5:
- PHP5 je uklonio register_globals, čarobne citate i siguran način rada. To je bilo zbog činjenice da je register_globals otvorio sigurnosne rupe namjerno dopuštajući ubrizgavanje podataka o vremenu izvođenja, a uporaba magičnih citata imala je nepredvidivu prirodu.
- PHP4 pokreće Zend Engine 1.0, dok PHP5 pokreće Zend Engine II.
- PHP5 je zamijenio čarobne citate funkcijom addslashes () kako bi izbjegao znakove.
- PHP4 je više proceduralni jezik dok je PHP5 objektno orijentiran.
- U PHP5 klasa se može deklarirati kao Sažetak.
- PHP5 sadrži statičke metode i svojstva.
- PHP5 uvodi posebnu funkciju pod nazivom __autoload ()
- PHP5 omogućuje da se klasa ili metoda proglasi Finalom
- PHP5 uvodi brojne magične metode, kao što su __call, __get, __set i __toString
- U PHP5 postoje 3 razine vidljivosti: javna, privatna i zaštićena.
- PHP5 je uveo iznimke.
- U PHP4, sve je prošlo po vrijednosti, uključujući objekte. Dok se u PHP5 svi objekti prosljeđuju referencom.
- PHP5 uvodi sučelja. Sve metode definirane u sučelju moraju biti javne.
- PHP5 uvodi novu razinu pogreške koja je definirana kao "E_STRICT"
- PHP5 uvodi nova defaultna proširenja kao što su SimpleXML, DOM i XSL, PDO i Hash.
- PHP5 uvodi nove funkcije.
- PHP5 uvodi neke nove rezervirane ključne riječi.
- PHP5 uključuje dodatne OOP koncepte nego php4, kao što su specifikatori pristupa, nasljeđivanje itd.
- PHP5 uključuje poboljšanu podršku trenutnih sustava za upravljanje sadržajem.
- PHP5 uključuje smanjenu potrošnju RAM-a.
- PHP5 uvodi povećanu sigurnost protiv iskorištavanja ranjivosti u PHP skriptama.
- PHP5 uvodi lakše programiranje kroz nove funkcije i proširenja.
- PHP5 uvodi novu MySQL proširenje pod nazivom MySQLi za programere koji koriste MySQL 4.1 i novije verzije.
- U PHP5, SQLite je u paketu s PHP-om.
- PHP5 uvodi potpuno novo ugrađeno SOAP proširenje za interoperabilnost s web-uslugama.
- PHP5 uvodi novo SimpleXML proširenje za jednostavan pristup i manipuliranje XML-om kao PHP objektima. Također se može povezati s DOM ekstenzijom i obratno.
- U PHP5, tokovi su uvelike poboljšani, uključujući mogućnost pristupa operacijama socket-a niskih razina na strujama.