Nøgleforskel: PHP et server-side scripting sprog, der har sin vigtigste implementering i webudvikling. Det kan dog bruges som et generel programmeringssprog. PHP4 og PHP5 er to versioner af PHP. PHP4 blev udgivet den 22. maj 2000. Den 13. juli 2004 blev PHP5 udgivet. Det blev drevet af Zend Engine II. Det var en forbedring i forhold til PHP4 og inkluderede forskellige nye funktioner.
PHP er en open source, server-side, HTML embedded scripting sprog. Det kan grundlæggende udføre enhver opgave, som andre CGI-programmer kan, men det bruges hovedsagelig til at oprette dynamiske websider. Den største fordel er, at den er kompatibel med mange typer databaser. Desuden kan PHP tale på tværs af netværk ved hjælp af IMAP, SNMP, NNTP, POP3 eller HTTP.
PHP indeholder en kommandolinjeprogramfunktion og kan bruges i selvstændige grafiske applikationer. PHP-kommandoer kan integreres direkte i et HTML-kilde-dokument i stedet for at kalde en ekstern fil til at behandle data. I HTML-dokumentet er PHP-scriptet indeholdt i særlige PHP-tags. På grund af disse tags kan programmereren skifte mellem HTML og PHP i stedet for at stole på tunge mængder kode for at udskrive HTML. Også, da PHP udføres på serveren, kan klienten ikke se PHP-koden.
Den 13. juli 2004 blev PHP5 udgivet. Det blev drevet af Zend Engine II. Det var en forbedring i forhold til PHP4 og omfattede forskellige nye funktioner, såsom forbedret understøttelse af objektorienteret programmering, PHP Data Objects (PDO) udvidelsen og talrige præstationsforbedringer. PDO-udvidelsen definerer en let og ensartet grænseflade til adgang til databaser. Sen statisk binding blev tilsat i version 5.3. PHP5 blev også designet til at være bagudkompatibel med tidligere versioner af PHP, og derfor skulle det resultere i, at lidt funktionalitet bliver brudt under konvertering fra PHP4 til PHP5.
Nogle forskelle mellem PHP4 og PHP5:
- PHP5 fjernet register_globals, magiske citater og sikker tilstand. Dette skyldtes det faktum, at register_globals havde åbnet sikkerhedshuller ved bevidst at tillade runtime datainjektion og brugen af magiske citater havde en uforudsigelig karakter.
- PHP4 blev drevet af Zend Engine 1.0, mens PHP5 blev drevet af Zend Engine II.
- PHP5 erstatter magiske citater med funktionen addslashes () for at undgå tegn.
- PHP4 er mere af et proceduresprog, mens PHP5 er objektorienteret.
- I PHP5 kan man erklære en klasse som Abstrakt.
- PHP5 indeholder statiske metoder og egenskaber.
- PHP5 introducerer en speciel funktion kaldet __autoload ()
- PHP5 tillader en at erklære en klasse eller metode som Final
- PHP5 introducerer en række magiske metoder, såsom __call, __get, __set og __toString
- I PHP5 er der 3 visibilitetsniveauer: Offentlige, private og beskyttede.
- PHP5 indførte undtagelser.
- I PHP4 blev alt passeret af værdi, herunder objekter. Mens i PHP5, alle objekter er bestået ved reference.
- PHP5 introducerer grænseflader. Alle de metoder, der er defineret i en grænseflade, skal være offentlige.
- PHP5 introducerer nyt fejlniveau defineret som 'E_STRICT'
- PHP5 introducerer nye standardudvidelser som SimpleXML, DOM og XSL, PDO og Hash.
- PHP5 introducerer nye funktioner.
- PHP5 introducerer nogle nye reserverede søgeord.
- PHP5 indeholder yderligere OOP koncepter end php4, som adgangspesifikatorer, arv osv.
- PHP5 indeholder forbedret understøttelse af nuværende indholdsstyringssystemer.
- PHP5 inkluderer reduceret forbrug af RAM.
- PHP5 introducerer øget sikkerhed mod udnyttelse af sårbarheder i PHP-scripts.
- PHP5 introducerer lettere programmering gennem nye funktioner og udvidelser.
- PHP5 introducerer en ny MySQL-udvidelse kaldet MySQLi til udviklere, der bruger MySQL 4.1 og nyere.
- I PHP5 er SQLite blevet bundtet med PHP.
- PHP5 introducerer en helt ny indbygget SOAP-udvidelse til interoperabilitet med Web Services.
- PHP5 introducerer en ny SimpleXML-udvidelse for nem adgang og manipulation af XML som PHP-objekter. Det kan også interface med DOM-udvidelsen og vice versa.
- I PHP5 er vandløb blevet forbedret betydeligt, herunder muligheden for at få adgang til lavt niveau socket operationer på strømme.