Belangrijk verschil: PHP is een server-side scriptingtaal die de belangrijkste implementatie heeft in webontwikkeling. Het kan echter worden gebruikt als een algemene programmeertaal. PHP4 en PHP5 zijn twee versies van PHP. PHP4 werd uitgebracht op 22 mei 2000. Op 13 juli 2004 werd PHP5 uitgebracht. Het werd aangedreven door Zend Engine II. Het was een verbetering ten opzichte van PHP4 en omvatte verschillende nieuwe functies.
PHP is een open source, server-side, HTML ingesloten scripttaal. Het kan in principe alle taken uitvoeren die andere CGI-programma's kunnen, maar het wordt voornamelijk gebruikt om dynamische webpagina's te maken. Het belangrijkste voordeel is dat het compatibel is met vele soorten databases. Verder kan PHP over netwerken praten met behulp van IMAP, SNMP, NNTP, POP3 of HTTP.
PHP bevat een opdrachtregelinterfacemogelijkheid en kan worden gebruikt in zelfstandige grafische toepassingen. PHP-opdrachten kunnen rechtstreeks in een HTML-brondocument worden ingesloten in plaats van een extern bestand voor de verwerking van gegevens te gebruiken. In het HTML-document is het PHP-script ingesloten in speciale PHP-tags. Vanwege deze tags kan de programmeur wisselen tussen HTML en PHP in plaats van te moeten vertrouwen op zware hoeveelheden code om HTML uit te voeren. Ook, aangezien PHP wordt uitgevoerd op de server, kan de client de PHP-code niet bekijken.
Op 13 juli 2004 werd PHP5 uitgebracht. Het werd aangedreven door Zend Engine II. Het was een verbetering ten opzichte van PHP4 en omvatte verschillende nieuwe functies, zoals verbeterde ondersteuning voor objectgeoriënteerd programmeren, de PHP Data Objects (PDO) -extensie en talrijke prestatieverbeteringen. De PDO-extensie definieert een lichtgewicht en consistente interface voor toegang tot databases. Late statische binding werd toegevoegd in versie 5.3. PHP5 is ook ontworpen om achterwaarts compatibel te zijn met eerdere versies van PHP en zou daarom moeten resulteren in het feit dat weinig functionaliteit wordt verbroken tijdens het converteren van PHP4 naar PHP5.
Enkele verschillen tussen PHP4 en PHP5:
- PHP5 heeft register_globals, magic quotes en safe mode verwijderd. Dit was te wijten aan het feit dat register_globals beveiligingslekken had geopend door met opzet runtime-gegevensinjectie toe te staan en het gebruik van magische aanhalingstekens een onvoorspelbaar karakter had.
- PHP4 werd aangedreven door Zend Engine 1.0, terwijl PHP5 werd aangedreven door Zend Engine II.
- PHP5 heeft magische aanhalingstekens vervangen door de functie addslashes () om tekens te ontlopen.
- PHP4 is meer een proceduretaal, terwijl PHP5 objectgeoriënteerd is.
- In PHP5 kan men een klasse als Abstract declareren.
- PHP5 bevat statische methoden en eigenschappen.
- PHP5 introduceert een speciale functie genaamd __autoload ()
- Met PHP5 kan men een klasse of methode declareren als Final
- PHP5 introduceert een aantal magische methoden, zoals __call, __get, __set en __toString
- In PHP5 zijn er 3 niveaus van zichtbaarheid: openbaar, privé en beschermd.
- PHP5 introduceerde uitzonderingen.
- In PHP4 werd alles gepasseerd op waarde, inclusief objecten. Terwijl in PHP5 alle objecten door verwijzing worden doorgegeven.
- PHP5 introduceert interfaces. Alle methoden die in een interface zijn gedefinieerd, moeten openbaar zijn.
- PHP5 introduceert nieuw foutniveau gedefinieerd als 'E_STRICT'
- PHP5 introduceert nieuwe standaardextensies zoals SimpleXML, DOM en XSL, PDO en hash.
- PHP5 introduceert nieuwe functies.
- PHP5 introduceert enkele nieuwe gereserveerde sleutelwoorden.
- PHP5 bevat extra OOP-concepten dan php4, zoals toegangsspecificaties, overerving, etc.
- PHP5 biedt verbeterde ondersteuning voor huidige content management-systemen.
- PHP5 omvat een verminderd RAM-verbruik.
- PHP5 introduceert een verhoogde beveiliging tegen misbruik van kwetsbaarheden in PHP-scripts.
- PHP5 introduceert eenvoudiger programmeren door nieuwe functies en uitbreidingen.
- PHP5 introduceert een nieuwe MySQL-extensie met de naam MySQLi voor ontwikkelaars die MySQL 4.1 en hoger gebruiken.
- In PHP5 is SQLite gebundeld met PHP.
- PHP5 introduceert een gloednieuwe ingebouwde SOAP-extensie voor interoperabiliteit met webservices.
- PHP5 introduceert een nieuwe SimpleXML-extensie voor eenvoudige toegang tot en manipulatie van XML als PHP-objecten. Het kan ook communiceren met de DOM-extensie en omgekeerd.
- In PHP5 zijn de streams enorm verbeterd, inclusief de mogelijkheid om socketbewerkingen op laag niveau op streams te gebruiken.