PHP ist der Nachfolger eines älteren Produktes, PHP/FI. PHP/FI wurde 1994 von Rasmus Lerdorf geschaffen. Ursprünglich war PHP/FI ein Set von Common Gateway Interface (CGI) Programmen zur Erfassung der Zugriffe auf seinen Webauftritt. Er nannte dieses Set von Skripten "Personal Home Page Tools", auch bekannt als "PHP Tools". Als dann mehr Funktionalität benötigt wurde, schrieb Rasmus eine viel größere Umsetzung, welche auch mit Datenbanken kommunizieren konnte, und den Benutzern die Entwicklung einfacher dynamischer Webapplikationen, wie Gästebüchern, ermöglichte. Rasmus entschloss sich im Juni 1995, den Sourcecode der PHP Tools zu » veröffentlichen, sodass ihn jeder benutzen, von Fehlern bereinigen, und weiterentwicklen konnte.
Im September dieses Jahres erweiterte Rasmus PHP und verzichtete sogar kurzzeitig auf das PHP im Namen. Nun wurden die Tools FI (kurz für "Formas Interpreter") genannt, und beinhalteten manches an Funktionalität des PHP wie wir es heute kennen. Es besaß Variablen wie in Perl, automatische Interpretation von Formularvariablen und eine in HTML eingebettete Syntax. Die Syntax selbst war der von Perl ähnlich, wenn auch viel eingeschränkter, einfach, und etwas inkonsistent. Tatsächlich mussten HTML-Kommentare verwendet werden, um den Code in eine HTML-Datei einzubetten. Obschon diese Methode nicht überall gut aufgenommen wurde, erfreute sich FI zunehmend an Wachstum und Akzeptanz als CGI-Tool – aber immer noch nicht wirklich als Sprache. Allerdings begann sich das im folgenden Monat zu ändern; im Oktober 1995 veröffentlichte Rasmus ein vollständiges Rewrite des Codes, und nannte es nun kurzzeitig Personal Home Page Construction Kit", und dies wurde als, für damalige Verhältnisse, fortgeschrittenes Skript-Interface angesehen. Die Sprache war absichtlich so gestaltet, dass sie C ähnelte, was die Struktur anging, so dass es leicht von Entwicklern genutzt werden konnte, die mit C, Perl und ähnlichen Sprachen vertraut waren. Soweit war es auf UNIX und POSIX-konforme System beschränkt, aber die Möglichkeit einer Windows NT Implementierung wurde untersucht.
Der Code erhielt eine weitere vollständige Überarbeitung, und im April 1996, führte Rasmus, die Namen der vergangenen Veröffentlichungen kombinierend, PHP/FI ein. Diese Implementierung der zweiten Generation war der Beginn der Entwicklung von PHP von einer Sammlung von Tools in eine richtige Programmiersprache. Es enthielt eingebaute Unterstützung für DBM, mSQL und Postgres95 Datenbanken, Cookies, benutzerdefinierte Funktionen und vieles mehr. PHP/FI 2.0 wurde im November 1997 offiziell freigegeben, nachdem es die meiste Zeit seines Lebenszyklus als verschiedene Betaversionen verbracht hatte.
Obwohl es nur für eine kurze Zeit entwickelt wurde, erfreute es sich zunehmend wachsender Beliebtheit in der noch immer jungen Welt der Web-Entwicklung. In 1997 und 1998 war PHP/FI Kult für mehrere Tausend Nutzer auf der ganzen Welt. Eine Netcraft-Erhebung von Mai 1998 zeigte an, dass nahezu 60.000 Domains HTTP-Header mit dem Inhalt "PHP" versandten, was bedeutete, dass der Host-Server es tatsächlich installiert hatte. Diese Zahl war zu dieser Zeit mit ungefähr 1% aller Domains im Internet gleichzusetzen. Trotz dieser eindrucksvollen Zahlen, stand das weitere Reifen von PHP/FI unter schwierigen vorzeichen, da es im Wesentlichen noch immer von einem Individuum entwickelt wurde.
Beispiel #1 PHP/FI Code-Beispiel
<!--include /text/header.html--> <!--getenv HTTP_USER_AGENT--> <!--ifsubstr $exec_result Mozilla--> He, sie verwenden Netscape!<p> <!--endif--> <!--sql database select * from table where user='$username'--> <!--ifless $numentries 1--> Pardon, dieser Datensatz ist nicht vorhanden<p> <!--endif exit--> Willkommen <!--$user-->!<p> Sie haben auf ihrem Konto <!--$index:0--> Credits übrig.<p> <!--include /text/footer.html-->
PHP 3.0 war die erste Version, die dem heutigen PHP gleicht. Da sie PHP/FI 2.0 noch immer uneffizient fanden, und Features vermissten, die sie für eine eCommerce-Anwendung benötigten, die sie für ein Universitätsprojekt entwickelten, begannen Andi Gutmans und Zeev Suraski aus Tel Aviv, Israel, 1997 ein weiteres vollständiges Rewrite des unterliegenden Parsers. Sie kontaktierten Rasmus online, und diskutierten diverse Aspekte der aktuellen Implementierung und ihrer Neuentwicklung von PHP. Im Bestreben die Engine zu verbessern, und auf der Basis der bestehenden Benutzer von PHP/FI aufbauend, entschieden sich Andi, Rasmus und Zeev zur Kooperation, um eine neue unabhängige Programmiersprache zu entwickeln. Die gesamte neue Sprache wurde unter einem neuen Namen veröffentlicht, welche die im Namen PHP/FI 2.0 vorhandene Implizierung einer eingeschränkten persönlichen Nutzung beseitigte. Es wurde einfach 'PHP' genannt, ein rekursives Akronym für PHP: Hypertext Preprocessor.
Eine der größten Stärken von PHP 3.0 waren die starken Erweiterungsmöglichkeiten. Zusätzlich zu der soliden Infrastruktur für eine Menge an Datenbanken, Protokollen und APIs, lockten vor allem die Erweiterungsmöglichkeiten von PHP 3 dutzende von Entwicklern an, welche sich beteiligten, und neue Erweiterungsmodule einbrachten. Möglicherweise war das der Schlüssel zu dem gewaltigen Erfolg von PHP 3.0. Weitere besondere Merkmale von PHP 3.0 waren die Unterstützung für objektorientierte Syntax und die viel bessere sowie konsistentere Sprachsyntax.
Im Juni 1998, mit vielen neuen Entwicklern aus der ganzen Welt, die sich dem Einsatz angeschlossen hatten, wurde PHP 3.0 vom neuen PHP-Entwicklungsteam als offizieller Nachfolger für PHP/FI 2.0 angekündigt. Die aktive Entwicklung von PHP/FI 2.0, die von November des Vorjahres an weitgehend eingestellt worden war, wurde nun offiziell beendet. Nach einer ungefähr neunmonatigen öffentlichen Testphase wurde PHP 3.0 offiziell freigegeben. Zu dieser Zeit war es bereits auf über 70.000 Domains in der ganzen Welt installiert, und nicht länger auf POSIX-konforme Betriebssysteme beschränkt. Ein eher kleiner Anteil der Domains, die PHP als installiert angaben, waren auf Servern gehostet, die unter Windows 95, 98 und NT liefen, bzw. auf Macintosh-Rechnern. An seinem Höhepunkt war PHP 3.0 auf etwa 10% der Webserver im Internet installiert.
Im Winter 1998, kurz nach der offiziellen Freigabe von PHP 3.0, begannen Andi Gutmans und Zeev Suraski den Kern von PHP umzuschreiben. Die Ziele waren eine verbesserte Leistung von komplexen Applikationen, und eine verbesserte Modularität des Code-Basis. Solche Applikationen wurden durch die neuen Leistungsmerkmale von PHP 3.0, der Unterstützung einer großen Auswahl von Datenbanken und APIs von Drittanbietern möglich gemacht, aber PHP 3.0 war nicht dafür entworfen, solche komplexen Applikationen auch effizient zu handhaben.
Die neue Engine, tituliert als 'Zend Engine' (aus den Vornamen Zeev und Andi gebildet), entsprach diesen Zielen im Design erfolgreich, und wurde zum ersten Mal Mitte 1999 eingeführt. PHP 4.0, das auf dieser Engine, verbunden mit einer großen Auswahl an zusätzlichen Leistungsmerkmalen basiert, wurde im Mai 2000 offiziell freigegeben, fast zwei Jahre nach seinem Vorgänger PHP 3.0. Zusätzlich zu der stark verbesserten Leistung, inkludierte PHP 4.0 andere wichtige Leistungsmerkmale, wie Unterstützung für viele weitere Webserver, HTTP-Sessions, Ausgabepufferung, sicherere Wege im Umgang mit Benutzereingaben, und verschiedene neue Sprachkonstrukte.
PHP 5 wurde im Juli 2004 nach langer Entwicklung und mehreren
Pre-Releases veröffentlicht. Der Kern von PHP 5 ist die
Zend Engine 2.0
, die ein neues Objektmodell und
Dutzende anderer neuer Features einführt.
Das Entwicklerteam von PHP besteht aus Dutzenden von Entwicklern, ergänzt durch Dutzende von weiteren Personen, die an verwandten Projekten wie PEAR, PECL, der Dokumentation, und einer Netzwerkinfrastruktur von gut über einhundert individuellen Webservern auf sechs der sieben Kontinente, arbeiten. Obgleich nur eine Schätzung basierend auf Statistiken der vergangenen Jahre, kann man gewiss davon ausgehen, dass PHP nun auf dutzenden oder vielleicht sogar hunderten von Millionen Domains in der ganzen Welt installiert ist.
Für PHP 6 war geplant, eine umfassende Unterstützung für Unicode in der Engine und in der Sprache zu implementieren. Diese Arbeit wurde später aufgegeben, aber andere für PHP 6 vorgesehene Funktionen wurden stattdessen in PHP 5.3 (Namensräume) und PHP 5.4 (Traits, Kurzform der Array-Syntax) integriert.
PHP 7.0 wurde 2015 veröffentlicht und enthielt eine neue Hauptversion des
Kerns, die Zend Engine 3.0
, die erhebliche
Verbesserungen der Performance (bis zu doppelt so schnell wie PHP 5. 6) und
des Speicherverbrauchs, konsistente 64-Bit-Unterstützung, Verbesserungen
bei Exceptions, einen sicheren Zufallszahlengenerator, den
Null-Koaleszenz-Operator (??),
anonyme Klassen und weitere
Features mit sich brachte.
In späteren Versionen der PHP 7-Reihe wurden weitere Sprachfeatures eingeführt, wie die Kurzform der list-Syntax (7.1), die Deklaration von Objektparametern und Rückgabetypen (7.2), eine neue flexible Syntax für Heredoc und Nowdoc (7.3), typisierte Eigenschaften (7.4) und eine neue Schnittstelle für Fremdfunktionen (7.4).
PHP 8.0 wurde erstmals im Jahr 2020 veröffentlicht und war ein weiteres
umfangreiches Update der Sprache PHP. Es enthielt viele neue Features und
Optimierungen, darunter
benannte Argumente,
Union-Typen,
Attribute,
Beförderung von Konstruktor-Eigenschaften,
den Ausdruck match
,
den Nullsafe-Operator (?->
),
einen neuen optimierenden JIT-Compiler und Verbesserungen im Typsystem, der
Fehlerbehandlung und der Konsistenz.
In späteren Versionen der PHP 8-Reihe wurden neue Sprachfeatures eingeführt, darunter Aufzählungen (8.1), Fibers (8.1), schreibgeschützte Klassen (8.2), Disjunctive Normal Form (DNF)-Typen (8.2) und typisierte Klassenkonstanten (8.3).