PHP

PHP
Logo.
Datum der ersten Version 1994
Paradigmen Imperativ , objektorientiert , funktional , prozedural , reflektierend und interpretiert
Autor Rasmus Lerdorf
Entwickler Die PHP-Gruppe
Letzte Version 8.0.7 (3. Juni 2021)
Entwicklungsversion 7.1.0 RC3 (23. September 2016)
7.4.0 Alpha 1 (13. Juni 2019)
7.4.0 Beta 1 (25. Juli 2019)
7.4.0 RC1 (6. September 2019)
7.4.0 Alpha 2 (26. Juni 2019)
7.4.0 alpha 3 (11. Juli 2019)
7.4.0 Beta 2 (8. August 2019)
7.4.0 Beta 4 (22. August 2019)
7.4.0 RC2 (19. September 2019)
7.4.0 RC3 (3. Oktober 2019)
7.4.0 RC4 (18. Oktober 2019)
7.4.0 RC5 (31. Oktober 2019)
7.4.0 RC6 (14. November 2019)
8.0.0 RC3 (29. Oktober 2020)
Tippen Dynamisch , Niedrig
Beeinflusst von C / C ++
Java-
Perl
Geschrieben in VS
Betriebssystem Multi-Plattform
Lizenz Kostenlose Lizenz  :
PHP-Lizenz
Webseite https://secure.php.net
Dateierweiterung php

PHP: Hypertext Preprocessor , besser bekannt unter seinem Akronym PHP ( Akronym self-referential ), ist eine freie Programmiersprache , die hauptsächlich verwendet wird, um dynamische Webseiten über einen HTTP-Server zu erstellen, kann aber auch als jede Sprache fungieren , dielokal interpretiert wird. PHP ist eine objektorientierte imperative Sprache .

PHP hat es möglich gemacht, eine große Anzahl berühmter Websites wie Facebook und Wikipedia zu erstellen . Sie gilt als eine der Grundlagen für die Erstellung sogenannter dynamischer Websites, aber auch von Webanwendungen.

Präsentation

PHP ist eine Skriptsprache am häufigsten auf der Serverseite verwendet  : in dieser Architektur, der Server interpretiert der PHP - Code der angeforderten Web - Seiten und generieren Code ( HTML , XHTML , CSS zum Beispiel) und Daten ( JPEG , GIF , PNG mit gutem Beispiel ) , die von einem Webbrowser interpretiert und wiedergegeben werden können . PHP kann auch andere Formate wie WML , SVG und PDF generieren .

Es wurde entwickelt, um die Erstellung dynamischer Anwendungen zu ermöglichen, die meistens für das Web entwickelt wurden . PHP wird meistens mit einem Apache- Server gekoppelt, obwohl es auf den meisten HTTP-Servern wie IIS oder nginx installiert werden kann . Diese Kopplung ermöglicht es, Informationen aus einer Datenbank , aus einem Dateisystem (Inhalt von Dateien und der Baumstruktur) oder einfacher aus vom Browser gesendeten Daten abzurufen , um später interpretiert oder gespeichert zu werden.

Es ist eine locker getippte und flexible Sprache und daher für Anfänger leicht zu erlernen, jedoch können dadurch schnell Sicherheitslücken in Anwendungen auftreten. Pragmatisch ist PHP nicht mit Theorie belastet und neigt dazu, den direktesten Weg zu wählen. Der Name der Funktionen (sowie die Übergabe der Argumente) respektiert jedoch nicht immer eine einheitliche Logik, was dem Lernen abträglich sein kann.

Der Einsatz beginnt mit der Bearbeitung von Formularen und dann mit dem Zugriff auf Datenbanken. Der Zugriff auf die Datenbanken ist einfach, nachdem die entsprechenden Module auf dem Server installiert wurden. Die offensichtlichste Stärke dieser Sprache ist, dass sie im Laufe der Zeit die einfache Lösung einst komplizierter Probleme ermöglicht hat und daher zu einem wesentlichen Bestandteil des Unterkunftsangebots geworden ist.

Es ist plattformübergreifend  : Sowohl unter Linux als auch unter Windows ist es einfach, denselben Code in einer etwas ähnlichen Umgebung zu erweitern (obwohl wir die Regeln von Verzeichnisbäumen berücksichtigen müssen, die sich ändern können).

Kostenlos, kostenlos, einfach zu bedienen und zu installieren, wie jede Programmiersprache, erfordert diese Sprache ein gutes Verständnis der wichtigsten üblichen Funktionen sowie eine genaue Kenntnis der mit dieser Sprache verbundenen Sicherheitsprobleme.

Die Version 5.3 führt viele neue Funktionen ein: Namespace (Namespace) - grundlegend für die Entwicklung von Erweiterungen zu Bibliotheken und strukturierten Frameworks , die anonymen Funktionen , die Closures usw.

Im Jahr 2018 verwenden fast 80% der Websites die Sprache PHP in ihren verschiedenen Versionen.

Die PHP-Sprache ist seit mehreren Jahren Gegenstand nationaler Treffen, die von AFUP (dem französischen Verband der PHP-Benutzer) organisiert werden, bei denen sich Programmier- und Community-Experten treffen, um über PHP und seine Entwickler zu diskutieren. So organisiert der Verein zwei große Veranstaltungen: das „PHP Forum“, in der Regel zum Jahresende, und die „AFUP Days“, die im ersten Semester gleichzeitig in mehreren Städten stattfinden.

Geschichte

Die Sprache PHP wurde 1994 von Rasmus Lerdorf für seine Website entwickelt . Es war ursprünglich eine Softwarebibliothek in C, die er benutzte, um Besucher zu verfolgen, die kamen, um ihren Lebenslauf zu konsultieren . Durch das Hinzufügen neuer Funktionen verwandelte Rasmus die Bibliothek in eine Implementierung, die in der Lage ist, mit Datenbanken zu kommunizieren und dynamische und einfache Anwendungen für das Web zu erstellen . Rasmus beschloss dann 1995 , seinen Code zu veröffentlichen, damit jeder ihn verwenden und genießen kann. PHP wurde dann PHP / FI (für genannt P ersonal H ome P Alter Tools / F orm I nterpreter ). In 1997 , zwei Studenten, Andi Gutmans und Zeev Suraski , sanierte den Kern von PHP / FI. Diese Arbeit führte ein Jahr später zu Version 3 von PHP, aus der dann PHP: Hypertext Preprocessor wurde . Bald darauf begannen Andi Gutmans und Zeev Suraski, die interne PHP-Engine neu zu schreiben. Es ist diese neue Engine, genannt Zend Engine – das Wort Zend ist die Abkürzung von Ze ev und A nd i – die als Basis für PHP Version 4 diente.

benutzen

Im Jahr 2002 wurde PHP von über 8 Millionen Websites weltweit verwendet, 2007 von über 20 Millionen und 2013 von über 244 Millionen.

Darüber hinaus ist PHP seit einigen Jahren die am weitesten verbreitete serverseitige Webprogrammiersprache :

Jahr Marktanteil
2010 75%
2013 75%
2016 82%

Im Jahr 2010 schließlich ist PHP mit einer Penetrationsrate von 57 % die Sprache, in der Open-Source-Software in Unternehmen am häufigsten verwendet wird .

Versionen

Schon seit Juni 2011und dem neuen PHP-Bereitstellungsprozess läuft der PHP-Bereitstellungszyklus auf ein jährliches Update mit erheblichen funktionalen Änderungen hinaus. Die Lebensdauer eines Zweigs beträgt 3 Jahre, wobei drei Zweige stabil bleiben und gewartet werden (das bedeutet, dass bei der Veröffentlichung einer neuen Version von PHP 5.x Version 5.x-3 nicht mehr unterstützt wird).

Version 8

Veröffentlicht am 26. November 2020, diese Hauptversion zeichnet sich vor allem durch die Funktionalität der „ Kompilierung im laufenden Betrieb “ ( Just-in-Time-Kompilierung ) aus.

Version 7.4

Version 7.4 wurde veröffentlicht am 20. Februar 2020. Es soll beibehalten werden, bisNovember 2022.

Version 7.4 unterscheidet sich von ihren Vorgängerversionen durch:

Version 7.3

Das 6. Dezember 2018, konzentrierte sich die Veröffentlichung von Version 7.3 auf:

Version 7.2

Das 30. November 2017, die Version von PHP 7.2, die Zend Engine 2 verwendet , führte eine leistungsfähigere Objektmodellierung , Fehlerbehandlung basierend auf dem Ausnahmemodell sowie Verwaltungsfunktionen für Unternehmen ein. PHP 5 bringt viele neue Funktionen, wie SQLite- Unterstützung sowie Möglichkeiten, XML- Dateien und -Strukturen basierend auf libxml2 zu manipulieren  :

Version 7 (PHP7)

Angesichts der anderen Ausrichtung der Sprache als PHP 6 schlagen einige Entwickler vor, die Nachfolgerversion von PHP 5 "PHP 7" statt "PHP 6" zu nennen. Eine Abstimmung unter den Entwicklern bestätigt diesen Vorschlag mit 58 gegen 24 Stimmen.

PHP 7.0.0 veröffentlicht in Dezember 2015.

Die neue Version bietet Code-Optimierung und bietet nach Angaben des Unternehmens Zend eine Leistung, die über die von virtuellen Maschinen wie HHVM hinausgeht . Die externen Benchmarks zeigen eine ähnliche Leistung für PHP HHVM und 7, mit einem leichten Vorteil von HHVM in den meisten Szenarien.

PHP 6 und Unicode

Im Jahr 2005 wurde von Andrei Zmievski das Projekt gestartet, PHP zu einer ursprünglichen Arbeitssprache in Unicode zu machen, die auf der Bibliothek International Components for Unicode (ICU) aufbaut und UTF-16 verwendet, um Zeichenketten in der Engine darzustellen.

Da dies eine große Änderung sowohl in der Funktionsweise der Sprache als auch im von den Benutzern erstellten PHP-Code darstellte, wurde beschlossen, dies in eine neue Version 6.0 mit anderen wichtigen Funktionen zu integrieren, die sich damals in der Entwicklung befanden. Der Mangel an fachkundigen Entwicklern in Unicode sowie die Performance-Probleme durch die Konvertierung von Strings von und nach UTF-16 (im Web-Kontext selten verwendet) haben jedoch dazu geführt, dass die Auslieferung dieser Version immer wieder verschoben wird. Daher wurde 2009 eine Version 5.3 erstellt, die viele Nicht-Unicode-Funktionen enthält, die ursprünglich für Version 6.0 geplant waren, einschließlich der Unterstützung von Namespaces und anonymen Funktionen. ImMärz 2010, wurde das Projekt 6.0, das Unicode integriert, aufgegeben und die Version 5.4 wurde vorbereitet, um die meisten der nicht-unicode-bezogenen Funktionen, die sich noch im 6.0-Zweig befinden, wie Strokes oder das Erweitern von Closures in das Objektmodell, zu integrieren.

Das Projekt ist seitdem zu einem vorhersehbaren (jährlichen) Lieferzyklus übergegangen, der bedeutende, aber begrenzte Fortschritte enthält, während die Rückwärtskompatibilität mit dem vorhandenen PHP-Code so weit wie möglich erhalten bleibt (5,4 im Jahr 2012, 5,5 im Jahr 2013, 5,6 für Sommer 2014 geplant). Schon seitJanuar 2014, wird die Idee einer neuen Hauptversion, die Unicode einführt, aber auf UTF-8 basiert (weitgehend inzwischen zum Webstandard für Unicode geworden) und bestimmte Änderungen erlaubt, die die Abwärtskompatibilität mit altem PHP-Code beeinträchtigen könnten, erneut diskutiert und die RFCs jetzt sortiert sort entsprechend ihrer Implementierung in 5.x (Entwicklungen, die die Abwärtskompatibilität nicht verursachen oder geringfügig beeinträchtigen) oder in der zukünftigen Hauptversion (wichtige Engine-Entwicklungen und Entwicklungen, die eine Abwärtskompatibilität implizieren).

Notieren

Es sollte beachtet werden, dass PHP in der Vergangenheit eine Standardkonfiguration hatte, die Flexibilität der Sicherheit vorzog (zB Register Globals, die bis PHP 4.2 standardmäßig aktiviert war). Diese Flexibilität ermöglichte es vielen Entwicklern, PHP zu erlernen, aber die Kehrseite war, dass viele PHP-Anwendungen schlecht gesichert waren. Das Thema wurde von der PHPGroup aufgegriffen, die Standardkonfigurationen eingerichtet hat, die die Sicherheit betonen. Daraus entstand ein Ruf der unsicheren Sprache, ein Ruf der Unsicherheit, der keine mehr hat .

Details zur vollständigen Versionsgeschichte Versionsgeschichte
Hauptversion Nebenversion Unterstützung Veröffentlichungsdatum Anmerkungen
1.0 1.0.0 Alte Version, nicht unterstützt 8. Juni 1995 Offiziell als "Personal Home Page Tools (PHP Tools)" bezeichnet, persönliche Seitentools. Dies ist das erste Auftreten des Namens "PHP".
2.0 2.0.0 Alte Version, nicht unterstützt 12. November 1997
3.0 3.0.0 Alte Version, nicht unterstützt 6. Juni 1998 Übergang von einer Person zu einem Entwicklerteam. Zeev Suraski und Andi Gutmans schreiben die Basis dieser Version neu.
4.0 4.0.0 Alte Version, nicht unterstützt 22. Mai 2000 Ein fortgeschritteneres Parsing- System namens Zend Engine wurde hinzugefügt . Diese Engine geht in zwei Stufen der Analyse und dann der Ausführung durch.
4.1.0 Alte Version, nicht unterstützt 10. Dezember 2001 Stellt superglobals ( $_GET, $_POST, $_SESSIONetc.)
4.2.0 Alte Version, nicht unterstützt 22. April 2002 Deaktiviert standardmäßig register_globals. Daten aus dem Netzwerk werden nicht mehr direkt in den globalen Namensraum eingefügt , wodurch die Möglichkeit von Sicherheitslücken verringert wird
4.3.0 Alte Version, nicht unterstützt 27. Dezember 2002 Führt zusätzlich zum CGI die CLI ein .
4.4.0 Alte Version, nicht unterstützt 11. Juli 2005 Hinzufügen des Handbuchs (Seiten, auf die über den Befehl zugegriffen werden kann man) für die Skripte phpizeund php-config.
5.0 5.0.0 Alte Version, nicht unterstützt 13. Juli 2004 Zend Engine II mit neuem Objektmodell.
5.1 5.1.0 Alte Version, nicht unterstützt 24. November 2005 Verbesserte Leistung durch Einführung von Kompilierungsvariablen in eine neu gestaltete PHP-Engine.
5.2 5.2.0 Alte Version, nicht unterstützt 2. November 2006 Standardmäßige Aktivierung der Erweiterung "Filter".
5.3 5.3.0 Alte Version, nicht unterstützt 30. Juni 2009 Unterstützung für Namensräume  ; Späte statische Bindungen ; Sprungmarken ( begrenztes Goto ); Verschlüsse (Verschlüsse); Native PHP-Archive (phar); zyklischer Referenz- Garbage Collector ; dauerhafte Verbindung mit MySQLi , sqlite3; fileinfo als Ersatz für mime_magic für bessere MIME- Unterstützung hinzugefügt  ; Abkürzung für den ternären Operator (?:); anonyme Funktionen  ; viele Fehlerbehebungen...
5.3.3 Alte Version, nicht unterstützt 22. Juli 2010 Einführung von PHP-FPM
5,4 5.4.0 Alte Version, nicht unterstützt 1 st März 2012 Support - Funktionen  ; kurze Tabellensyntax eingeführt; Zugriff auf Tabellenindizes am Funktionsausgang; Schließungen unterstützen $ this; <? = immer verfügbar; Zugriff auf die Attribute eines Objekts aus der Instanziierung; Klasse :: {expr} () Syntax hinzugefügt; Ergänzung des binären Zahlenformats; Verfolgen von Datei-Uploads über die Sitzungserweiterung; Webserver eingebettet in CLI für die Entwicklung; Dtrace- Unterstützung  ; Entfernen von magischen Anführungszeichen , safe_mode , register_globals und register_long_array- Erweiterungen .
5.4.26 Alte Version, nicht unterstützt 6. März 2014 Hinzufügen von ldap_modify_batch ()
5,5 5.5.0 Alte Version, nicht unterstützt 20. Juni 2013 Unterstützung für Generatoren und Coroutinen  ; Hinzufügen einer API zu Hash- Passwörtern; Standardintegration des Zend OPcache Cache Systems; viele Fehler behoben; Einstellung des Supports für Windows XP und Windows Server 2003  ; Aktualisierung der GD- Bibliothek  ; mysql_-Funktionen gelten nun als obsolet (Schwerpunkt mysqli_ und PDO_MySQL).
5.5.4 Alte Version, nicht unterstützt 19. September 2013 Verbesserung von fputcsv().
5.5.5 Alte Version, nicht unterstützt 17. Oktober 2013 Neue Funktion opcache_compile_file(), Unterstützung für das GNU Hurd-System, Hinzufügen des MIME-Typs application/pdf im Entwicklungsserver.
5.5.6 Alte Version, nicht unterstützt 14. November 2013 Verbesserte Leistung von array_merge () und func_get_args ().
5.5.7 Alte Version, nicht unterstützt 12. Dezember 2013 Unterstützung für getallheaders () und MIME-Typen im Entwicklungsserver hinzugefügt, apache_response_headers () hinzugefügt.
5.5.10 Alte Version, nicht unterstützt 6. März 2014 Wechsel zu PCRE 8.34. Hinzufügen von ldap_modify_batch ()
5.5.13 Alte Version, nicht unterstützt 29. Mai 2014 Dem integrierten Entwicklungsserver wurden xsl / xml-MIME-Typen hinzugefügt.
5,6 5.6.0 Alte Version, nicht unterstützt 28. August 2014 Neue Syntax für Funktionen mit variablen Parametern und Entpacken von Parametern, Import von Funktionen innerhalb von Namespaces , Integration des phpdbg- Debuggers als Standard, Verbesserung der Zip-Erweiterung, akzeptierte Ausdrücke zum Definieren von Konstanten, verbesserte Handhabung von POST-Daten , Unterstützung des Überladens von Operatoren in die Zend Engine, neue magische Methode __debugInfo (), die Debug-Informationen zu Objekten bereitstellt, verschiedene Verbesserungen der Unterstützung von SSL / TLS , Hinzufügen des Exponentiationsoperators "  ** », Downloads über 2  GB werden jetzt unterstützt.
5.6.32 Alte Version, nicht unterstützt 26. Okt. 2017 3 Fehler behoben (Datum, mcrypt, PCRE)
5.6.33 Alte Version, nicht unterstützt 4. Januar 2018 2 Fehler behoben (GD, Phar)
7,0 7.0.0 Alte Version, nicht unterstützt 3. Dezember 2015 Verbesserte Leistung dank der "phpng"-Engine (bis zu doppelt so schnell wie PHP 5.6), homogene Unterstützung für 64-Bit-Architekturen, Hinzufügen von Ausnahmen, die das Abfangen schwerwiegender Fehler ermöglichen, Hinzufügen der Operatoren "  ?? " (genannt "  Null-Coalescing  (en )  ") und"  <=> "(genannt "kombinierter Vergleich"), Möglichkeit, den von einer Funktion zurückgegebenen Typ sowie die skalaren Typen der Argumente explizit zu deklarieren, Unterstützung für anonyme Klassen ...
7.0.25 Alte Version, nicht unterstützt 26. Okt. 2017 14 Fehler behoben.
7.0.26 Alte Version, nicht unterstützt 23. November 2017 18 Fehler behoben.
7.0.27 Alte Version, nicht unterstützt 4. Januar 2018 11 Fehler behoben.
7.0.28 Alte Version, nicht unterstützt 27. Februar 2018 Fehlerbehebung.
7.0.29 Alte Version, nicht unterstützt 29. März 2018 1 Fehler behoben.
7.0.30 Alte Version, nicht unterstützt 26. April 2018 4 Fehler behoben.
7.0.31 Alte Version, nicht unterstützt 19. Juli 2018 3 Fehler behoben.
7.0.32 Alte Version, nicht unterstützt 13. September 2018 1 Fehler behoben: Apache2 (XSS)
7.0.33 Alte Version, nicht unterstützt 6. Dezember 2018 5 Fehler behoben: Core, IMAP, Phar
7.1 7.1.0 Alte Version, nicht unterstützt 1 st Dezember 2016 Nullable Types  (in) , Rückgabetyp void, Pseudotyp iterable, Sichtbarkeit von Klassenkonstanten, Verbesserungen list(), mehrere Ausnahmetypen abfangen  usw.
7.1.1 Alte Version, nicht unterstützt 19. Januar 2017 33 Fehler und Speicheroptimierung von mysqlnd behoben.
7.1.3 Alte Version, nicht unterstützt 16. März 2017 24 Fehler behoben.
7.1.11 Alte Version, nicht unterstützt 27. Oktober 2017 19 Fehler behoben.
7.1.12 Alte Version, nicht unterstützt 23. November 2017 18 Fehler behoben.
7.1.13 Alte Version, nicht unterstützt 4. Januar 2018 20 Fehler behoben.
7.1.14 Alte Version, nicht unterstützt 1 st Februar 2018 Fehlerbehebung.
7.1.15 Alte Version, nicht unterstützt 1 st März 2018 12 Fehler behoben.
7.1.16 Alte Version, nicht unterstützt 29. März 2018 9 Fehler behoben.
7.1.17 Alte Version, nicht unterstützt 26. April 2018 14 Fehler behoben.
7.1.18 Alte Version, nicht unterstützt 24. Mai 2018 6 Fehler behoben.
7.1.19 Alte Version, nicht unterstützt 22. Juni 2018 6 Fehler behoben.
7.1.20 Alte Version, nicht unterstützt 19. Juli 2018 15 Fehler behoben.
7.1.21 Alte Version, nicht unterstützt 16. August 2018 16 Fehler behoben in: Kalender, Filter, PDO_Firebird, PDO_PgSQL, SQLite3, Standard & Zip
7.1.22 Alte Version, nicht unterstützt 13.09.2018 20 Fehler behoben auf: Core, Apache2, Bz2, gettext, iconv, intl, libxml, mbstring, Opcache, OpenSSL, phpdbg, SPL, Standard & libzip
7.1.23 Alte Version, nicht unterstützt 11. Oktober 2018 11 Fehler behoben auf: Core, cURL, iconv, Opcache, POSIX, Reflection, Standard, Zlib
7.1.24 Alte Version, nicht unterstützt 8. November 2018 11 Fehler behoben bei: Core, Datum, FCGI, FTP, intl, Standard, Tidy, XML
7.1.25 Alte Version, nicht unterstützt 06. Dezember 2018 13 Fehler behoben auf: Core, FTP, iconv, IMAP, OBDC, Opcache, Phar, PGSQL, SOAP, Sockets
7.2 7.2.0 Alte Version, nur Sicherheitskorrekturen 30. November 2017 Schnittstelle Countable, Konstante PHP_OS_FAMILYusw. hinzugefügt .
7.2.1 Alte Version, nur Sicherheitskorrekturen 4. Januar 2018 21 Fehler behoben.
7.2.2 Alte Version, nur Sicherheitskorrekturen 1 st Februar 2018 25 Fehler behoben.
7.2.3 Alte Version, nur Sicherheitskorrekturen 1 st März 2018 Behebung von 18 Fehlern.
7.2.4 Alte Version, nur Sicherheitskorrekturen 29. März 2018 Behebung von 16 Fehlern.
7.2.5 Alte Version, nur Sicherheitskorrekturen 26. April 2018 Behebung von 18 Fehlern.
7.2.6 Alte Version, nur Sicherheitskorrekturen 24. Mai 2018 8 Fehlerbehebungen.
7.2.7 Alte Version, nur Sicherheitskorrekturen 21. Juni 2018 Behebung von 7 Fehlern.
7.2.8 Alte Version, nur Sicherheitskorrekturen 19. Juli 2018 Behebung von 19 Fehlern.
7.2.9 Alte Version, nur Sicherheitskorrekturen 16. August 2018 9 Fehlerbehebungen.
7.2.10 Alte Version, nur Sicherheitskorrekturen 13.09.2018 Behebung von 19 Fehlern.
7.2.11 Alte Version, nur Sicherheitskorrekturen 11. Oktober 2018 13 Fehler behoben.
7.2.12 Alte Version, nur Sicherheitskorrekturen 8. November 2018 20 Fehlerbehebungen.
7.2.13 Alte Version, nur Sicherheitskorrekturen 6. Dezember 2018 Behebung von 16 Fehlern.
7.2.14 Alte Version, nur Sicherheitskorrekturen 10. Januar 2019 Fehlerbehebung.
7.2.15 Alte Version, nur Sicherheitskorrekturen 7. Februar 2019 Fehlerbehebung.
7.2.16 Alte Version, nur Sicherheitskorrekturen 7. März 2019 Fehlerbehebung.
7.2.31 Alte Version, nur Sicherheitskorrekturen 14. Mai 2020 Fehlerbehebung.
7.2.32 Alte Version, nur Sicherheitskorrekturen 9. Juli 2020 Fehlerbehebung.
7.2.33 Alte Version, nur Sicherheitskorrekturen 6. August 2020 Fehlerbehebung.
7.2.34 Alte Version, nur Sicherheitskorrekturen 1 st Oktober 2020 Fehlerbehebung.
7.3 7.3.0 Alte Version, Verbesserungen und Sicherheitskorrekturen 29. November 2018 Syntax Heredoc nowdoc und flexibler, Endpunkt im Funktionsaufruf JSON_THROW_ON_ERROR, Zuweisung durch Verweis auf die Funktion list(), is_countable(), array_key_first()und array_key_last(), Hash-Algorithmus Argon2id etc.
7.3.1 Alte Version, Verbesserungen und Sicherheitskorrekturen 10. Januar 2019 Fehlerbehebung.
7.3.2 Alte Version, Verbesserungen und Sicherheitskorrekturen 7. Februar 2019 Fehlerbehebung.
7.3.3 Alte Version, Verbesserungen und Sicherheitskorrekturen 7. März 2019 Fehlerbehebung.
7.3.4 Alte Version, Verbesserungen und Sicherheitskorrekturen 4. April 2019 Fehlerbehebung.
7.3.5 Alte Version, Verbesserungen und Sicherheitskorrekturen 2. Mai 2019 Fehlerbehebung.
7.3.6 Alte Version, Verbesserungen und Sicherheitskorrekturen 30. Mai 2019 Fehlerbehebung.
7.3.7 Alte Version, Verbesserungen und Sicherheitskorrekturen 4. Juli 2019 Fehlerbehebung.
7.3.8 Alte Version, Verbesserungen und Sicherheitskorrekturen 1 st August 2019 Fehlerbehebung.
7.3.9 Alte Version, Verbesserungen und Sicherheitskorrekturen 29. August 2019 Fehlerbehebung.
7.3.10 Alte Version, Verbesserungen und Sicherheitskorrekturen 26. September 2019 Fehlerbehebung.
7.3.11 Alte Version, Verbesserungen und Sicherheitskorrekturen 24. Oktober 2019 Fehlerbehebung.
7.3.12 Alte Version, Verbesserungen und Sicherheitskorrekturen 21. November 2019 Fehlerbehebung.
7.3.13 Alte Version, Verbesserungen und Sicherheitskorrekturen 18. Dezember 2019 Fehlerbehebung.
7.3.14 Alte Version, Verbesserungen und Sicherheitskorrekturen 23. Januar 2020 Fehlerbehebung.
7.3.15 Alte Version, Verbesserungen und Sicherheitskorrekturen 20. Februar 2020 Fehlerbehebung.
7.3.16 Alte Version, Verbesserungen und Sicherheitskorrekturen 19. März 2020 Fehlerbehebung.
7.3.17 Alte Version, Verbesserungen und Sicherheitskorrekturen 16. April 2020 Fehlerbehebung.
7.3.18 Alte Version, Verbesserungen und Sicherheitskorrekturen 14. Mai 2020 Fehlerbehebung.
7.3.19 Alte Version, Verbesserungen und Sicherheitskorrekturen 11. Juni 2020 Fehlerbehebung.
7.3.20 Alte Version, Verbesserungen und Sicherheitskorrekturen 9. Juli 2020 Fehlerbehebung.
7.3.21 Alte Version, Verbesserungen und Sicherheitskorrekturen 6. August 2020 Fehlerbehebung.
7.3.22 Alte Version, Verbesserungen und Sicherheitskorrekturen 3. September 2020 Fehlerbehebung.
7.3.23 Alte Version, Verbesserungen und Sicherheitskorrekturen 1 st Oktober 2020 Fehlerbehebung.
7.3.24 Alte Version, Verbesserungen und Sicherheitskorrekturen 29. Oktober 2020 Fehlerbehebung.
7,4 7.4.0 Alte Version, Verbesserungen und Sicherheitskorrekturen 28. November 2019 2.0 typisierte Eigenschaften, Preloading, Null-Koaleszenz-Zuweisungsoperator, openssl_random_pseudo_byteskann eine Ausnahme auslösen, Hinzufügen von schwachen Referenzen, die Hash-Erweiterung des FFI (Foreign Function Interface) ist immer obligatorisch, Registrierung von Passwort-Hashes, Split auf Multibyte-Strings, Reflexion für Referenzen, ext/wddx-Entbündelung, neuer benutzerdefinierter Objektserialisierungsmechanismus und mehrere Fehlerbehebungen.
7.4.1 Alte Version, Verbesserungen und Sicherheitskorrekturen 18. Dezember 2019 Fehlerbehebung.
7.4.2 Alte Version, Verbesserungen und Sicherheitskorrekturen 23. Januar 2020 Fehlerbehebung.
7.4.3 Alte Version, Verbesserungen und Sicherheitskorrekturen 20. Februar 2020 Fehlerbehebung.
7.4.4 Alte Version, Verbesserungen und Sicherheitskorrekturen 19. März 2020 Fehlerbehebung.
7.4.5 Alte Version, Verbesserungen und Sicherheitskorrekturen 16. April 2020 Fehlerbehebung.
7.4.6 Alte Version, Verbesserungen und Sicherheitskorrekturen 14. Mai 2020 Fehlerbehebung.
7.4.7 Alte Version, Verbesserungen und Sicherheitskorrekturen 11. Juni 2020 Fehlerbehebung.
7.4.8 Alte Version, Verbesserungen und Sicherheitskorrekturen 9. Juli 2020 Fehlerbehebung.
7.4.9 Alte Version, Verbesserungen und Sicherheitskorrekturen 6. August 2020 Fehlerbehebung.
7.4.10 Alte Version, Verbesserungen und Sicherheitskorrekturen 3. September 2020 Fehlerbehebung.
7.4.11 Alte Version, Verbesserungen und Sicherheitskorrekturen 1 st Oktober 2020 Fehlerbehebung.
7.4.12 Alte Version, Verbesserungen und Sicherheitskorrekturen 29. Oktober 2020 Fehlerbehebung.
7.4.13 Alte Version, Verbesserungen und Sicherheitskorrekturen 26. November 2020 Fehlerbehebung.
8.0 8.0.0 Aktuelle Version, Sicherheitsverbesserungen und Fixes 26. November 2020 "Just-in-Time-Kompilierung", Typunionen, Typ "gemischt", Rückgabetyp "statisch", benannte Parameter, Operator "nullsicher", Schlüsselwort "match", ...
8.1 8.1.0 Zukünftige Version 2021


Operation

PHP gehört zur großen Familie der C- Nachkommen , deren Syntax sehr ähnlich ist. Insbesondere ähneln Syntax und Aufbau denen der Sprachen Java und Perl , außer dass PHP-Code problemlos mit HTML- Code innerhalb einer PHP-Datei gemischt werden kann .

Bei einer für das Internet bestimmten Nutzung erfolgt die Ausführung des PHP-Codes wie folgt: Wenn ein Besucher eine Website-Seite aufrufen möchte, sendet sein Browser eine Anfrage an den entsprechenden HTTP-Server . Wenn die Seite als PHP-Skript identifiziert wird (normalerweise dank der Erweiterung .php), ruft der Server den PHP- Interpreter auf, der den endgültigen Code für die Seite verarbeitet und generiert (in der Regel bestehend aus HTML oder XHTML , aber auch oft aus Cascading Style Sheets und JS ). Dieser Inhalt wird an den HTTP-Server zurückgesendet, der ihn schließlich an den Client sendet.

Dieses Diagramm erklärt, wie es funktioniert:

Php arch shema.png

Oft kommt noch ein weiterer Schritt hinzu: der Dialog zwischen PHP und der Datenbank . Normalerweise öffnet PHP eine Verbindung zum gewünschten DBMS- Server , sendet ihm Anfragen und ruft das Ergebnis ab, bevor die Verbindung geschlossen wird.

PHP wird am häufigsten als dynamischer Webseitengenerator verwendet, kann aber auch als Kommandozeilen- Programmier- oder Skriptsprache verwendet werden, ohne einen HTTP-Server oder Browser zu verwenden. Es ermöglicht dann, viele Funktionen der Sprache C und mehrere andere zu verwenden, ohne dass bei jeder Änderung des Quellcodes eine Kompilierung erforderlich ist.

Um in Linux/UNIX ausführbare PHP-Skripte von der Kommandozeile aus zu erreichen, genauso wie in Perl oder Bash , in die erste Codezeile den Shebang einzufügen  : #! /usr/bin/php. Unter einem Entwicklungseditor wie SciTE reicht auch unter Windows eine erste Zeile <?php, wenn die Datei den Typ .php hat .

Es gibt auch eine Erweiterung namens PHP-GTK, die es ermöglicht, grafische Client-Anwendungen auf einem Computer mit der GTK+ -Grafikbibliothek oder der WinBinder- Alternative zu erstellen .

PHP verfügt über eine Vielzahl von Funktionen, die Operationen auf dem Dateisystem ermöglichen , Befehle im Terminal ausführen , Datenbanken verwalten , Sortier- und Hash-Funktionen , Strings verarbeiten , Daten generieren und ändern. 'Bilder, Algorithmen zur Komprimierung ...

Wikipedias Engine, MediaWiki , ist in PHP geschrieben und interagiert mit einer MySQL- oder PostgreSQL-Datenbank

Bonjour Monde

Einige Beispiele für die traditionelle Hello-Welt  :

<?php echo 'Hello World'; ?>

echo Da es sich um eine Struktur der Sprache handelt, ist es möglich - und sogar empfohlen -, keine Klammern zu setzen.

Es ist auch möglich, die verkürzte Version zu verwenden:

<?= 'Hello World' ?>

Ergebnis angezeigt:

Hello World

Stichworte

Der PHP-Code muss zwischen den Tags <?phpund eingefügt werden ?>(das schließende Tag ist optional am Ende der Datei).

Es gibt andere Notationen für Tags:

  • <?=und ?>(kurze Notation mit Anzeige)
  • <?und ?>(kurze Notation ohne Anzeige in PHP 8 nicht verfügbar)
  • <%und %>( ASP- Notation )
  • <script language="php">und </script>(Skriptnotation)

Andere Notationen als die Standardnotation ( <?phpund ?>)und die Kurznotation mit Anzeige ( <?=und ?>)werden nicht empfohlen, da sie in der Serverkonfiguration (php.ini oder .htaccess) deaktiviert werden können: die Portabilität des Codes wird dadurch reduziert.

Ab PHP 7 wurden die ASP- und Skriptnotationen entfernt. Eine kurze Notation ohne Anzeige wird nicht empfohlen.

Anleitung

Die Anweisungen werden durch getrennt ;(es ist nicht zwingend nach der letzten Anweisung) und die Zeilenumbrüche ändern die Funktionsweise des Programms nicht. Es wäre daher möglich zu schreiben:

<?php echo 'Hello World'; echo 'Comment allez-vous ?'; echo 'Il fait beau non ?' ?>

Aus Gründen der Lesbarkeit wird dennoch empfohlen, nur eine Anweisung pro Zeile zu schreiben. Es ist auch besser, den letzten zu schreiben ;.

Kontrollstrukturen

Der PHP-Code besteht aus Aufrufen von Funktionen, um Variablen Werte zuzuweisen, alle eingerahmt in Bedingungen, Schleifen. Beispiel:

<?php // la fonction strtolower renvoie en minuscules la chaîne de caractères passée en paramètre $lang = strtolower($_POST['lang']); if ($lang === 'fr') { echo 'Vous parlez français !'; } elseif ($lang === 'en') { echo 'You speak English!'; } else { echo 'Je ne vois pas quelle est votre langue !'; }

Eine Bedingung wird angewendet, wenn der Ausdruck in Klammern ausgewertet wird true, und nicht bei false. In numerischer Form steht 0für die false, und 1(und alle anderen Zahlen) für die true.

Der obige Code könnte auch so geschrieben werden:

<?php $lang = strtolower($_POST['lang']); $isLangFr = $lang === 'fr'; $isLangEn = $lang === 'en'; if ($isLangFr) { echo 'Vous parlez français !'; } elseif ($isLangEn) { echo 'You speak English!'; } else { echo 'Je ne vois pas quelle est votre langue !'; }

Hier testen wir die Gleichheit zwischen $langund 'fr', aber nicht direkt im if : Der Test liefert einen booleschen Wert (also entweder trueoder false), der in der Variablen gespeichert wird $is_lang_fr. Diese Variable wird dann in die eingetragen ifund führt je nach Wert der Variablen die Verarbeitung durch oder nicht.

Die Blöcke if, elseifund elsewerden im Allgemeinen durch die Zeichen {und begrenzt }, die wie in den vorhergehenden Codes weggelassen werden können, wenn diese Blöcke nur eine Anweisung enthalten.

Es ist auch möglich, else ifin zwei Wörtern zu schreiben , wie in C/C++.

HTML-Code-Generierung

Mit dem PHP-Skript können Sie beispielsweise HTML-Code generieren:

<?php $nom = 'Albert'; echo '<div>Bonjour ' . $nom . ' !</div>';

Es ist auch möglich, eine alternative Syntax für die if / else-Struktur zu verwenden:

<?php $nomsAutorises = [ 'Albert', 'Bertrand' ]; $nomEnCours = 'Eve'; ?> <?php if (in_array($nomEnCours, $nomsAutorises)): ?> <p>Bonjour <?php echo $nomEnCours; ?> !</p> <?php else: ?> <p>Vous n'êtes pas un utilisateur autorisé !</p> <?php endif; ?>

Ein weiterer Ansatz ist zu verketten all HTML - Code in einer Variablen und Echo die Variable am Ende der Datei hinzu :

<?php $out = ''; // On ajoute progressivement tout le code html $out .= '<p>a' . 'b' . 'c</p>'; $out .= '<div class="bottom"><p>d' . 'e' . 'f</p></div>'; // On affiche le contenu echo $out;

Für den Fall, dass der Benutzer die Verwendung des Befehls echoder Verkettung vorgezogen hat , kann er den Fluss mithilfe der Funktionen ob_start()und erfassen ob_get_clean() :

<?php // On place le flux dans un tampon ob_start(); // On fait des affichages echo 'abc' . "\n"; echo 'def' . "\n"; require_once 'fichier.php'; // De nombreux affichages (echo) // On stoppe la mise en tampon, on récupère son contenu et on met le tampon à vide (pour une éventuelle prochaine tamporisation) $out = ob_get_clean(); // On affiche le contenu du tampon echo $out;

Mit PHP können Sie ebenso wie JavaScript ein Document Object Model ( DOM ) erstellen, mit dem Sie ein (X) HTML-Dokument erstellen oder ändern können, ohne HTML zu schreiben, wie das folgende Beispiel zeigt:

<?php $doctype = DOMImplementation::createDocumentType('html'); $dom = DOMImplementation::createDocument(null, 'html', $doctype); $html = $dom->documentElement; $html->head = $dom->createElement('head'); $html->appendChild($html->head); $html->head->title = $dom->createElement('title'); $html->head->title->nodeValue = 'Exemple de HTML'; $html->head->appendChild($html->head->title); $html->head->charset = $dom->createElement('meta'); $html->head->charset->setAttribute('http-equiv', 'Content-Type'); $html->head->charset->setAttribute('content', 'text/html; charset=utf-8'); $html->head->appendChild($html->head->charset); $html->body = $dom->createElement('body'); $html->appendChild($html->body); $html->body->p = $dom->createElement('p'); $html->body->p->nodeValue = 'Ceci est un paragraphe.'; $html->body->appendChild($html->body->p); $html->body->p->br = $dom->createElement('br'); $html->body->p->appendChild($html->body->p->br); $html->body->p->a = $dom->createElement('a'); $html->body->p->a->nodeValue = 'Ceci est un lien.'; $html->body->p->a->setAttribute('href', 'cible.html'); $html->body->p->appendChild($html->body->p->a); echo $dom->saveHTML();

Dadurch wird der folgende HTML-Code erstellt:

<!DOCTYPE html> <html> <head> <title>Exemple de HTML</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body><p>Ceci est un paragraphe.<br /><a href="cible.html">Ceci est un lien.</a></p></body> </html>

Diese Methode wird jedoch wenig verwendet, um ein vollständiges Dokument zu generieren, sie wird normalerweise verwendet, um eine XML- Datei zu generieren .

Der Befehl phpinfo()wird auch verwendet, um HTML-Code zu generieren, der Serverparameter beschreibt; Es wird auch häufig verwendet, um die ordnungsgemäße Ausführung der PHP-Laufzeit-Engine zu testen.

Objekt orientierte Programmierung

Wie in C++ und Java ermöglicht PHP die objektorientierte Programmierung, indem Klassen erstellt werden, die Attribute und Methoden enthalten, die instanziiert oder statisch verwendet werden können.

PHP ist jedoch eine einfache Vererbungssprache, d. h. eine Klasse kann nur von maximal einer anderen Klasse erben (ansonsten muss man ein Trait verwenden , um Mehrfachvererbung durch Komposition zu simulieren). Schnittstellen können jedoch mehrere andere erweitern.

Hier ist ein Beispiel für das Erstellen einer Klasse:

<?php interface EtreVivant { // Cette méthode devra être déclarée dans les classes implémentant cette interface. public function isDead(): bool; } class Perso implements EtreVivant { public const PV_INITIAL = 2000; private int $pv = 0; // Constructeur : celui-ci est appelé lors de l'instanciation de l'objet. // Ce constructeur possède un paramètre optionnel. public function __construct(int $pv = 0) { if ($pv < 0 || $pv > 100000000) { $this->pv = self::PV_INITIAL; } else { $this->pv = $pv; } } // Accesseurs public function getPv(): int { return $this->pv; } // Implémentation de la méthode de l'interface. public function isDead(): bool { return $this->pv === 0; } } // Création d'une classe enfant de Perso class Magicien extends Perso { private int $mana; } // Création d'une instance de classe $mage = new Magicien(1000); // Utilisation de l'objet echo 'Votre mage a ' . $mage->getPv() . ' PV.'; // Constantes de classes echo 'Le PV par défaut attribué à un nouveau personnage est de ' . Perso::PV_INITIAL . '.'; // Destruction de l'objet unset($mage);

Maskottchen

Wie viele Open-Source-Projekte hat PHP ein Maskottchen. Dies ist der éléPHPant, entworfen 1998 von El Roubio.

El Roubio wurde von der Ähnlichkeit der Buchstaben PHP mit einem Elefanten und der Tatsache inspiriert , dass in diesem Wort bereits zwei der Buchstaben der Sprache vorhanden sind, was die Entstehung des Neologismus éléPHPant ermöglichte. Alle Werke von El Roubio werden unter der GNU GPL- Lizenz vertrieben . Ein Plüsch von elePHPant blue existiert. Andere Versionen sind in den letzten Jahren entstanden (pink, gelb, rot, lila und orange) unter der Führung von Unternehmen (PHP Architect oder Zend Technologies) oder Usergroups wie PHP Women oder PHP Amsterdam.

Die Site afieldguidetoelephpant.net listet alle existierenden éléphpants auf.

Anwendungsbeispiele

Plattformen

Ein Webserver mit dreischichtiger Architektur besteht aus einem Betriebssystem , einem HTTP-Server , einer Serversprache und schließlich einem Datenbankmanagementsystem (DBMS), das eine Plattform darstellt.

Bei PHP als Serversprache sind die gängigsten Kombinationen die einer LAMP (für Linux Apache MySQL PHP) und WAMP (Windows Apache MySQL PHP) Plattform. Eine WAMP-Plattform wird normalerweise über ein einziges Softwarepaket installiert, das Apache, MySQL und PHP integriert, zum Beispiel EasyPHP , VertrigoServ , WampServer oder UwAmp. Es gibt dieselbe Art von Software für MAMP-Plattformen (Mac OS Apache MySQL PHP), zum Beispiel MAMP- Software .

Es gibt andere Varianten, zum Beispiel LAPP-Plattformen (das M von MySQL wird durch das P von PostgreSQL ersetzt ) oder die XAMPP- Software (Apache MySQL Perl PHP; das X zeigt an, dass die Software plattformübergreifend ist ), ein plattformübergreifendes Entwicklungskit .

Es gibt eine Vielzahl von Akronymen, die in dieser Form verwendet werden können. Manchmal kann es zu Verwechslungen zwischen der Plattform selbst und der für die Installation verwendeten Software kommen, wenn sie denselben Namen haben. Es sollte auch beachtet werden, dass die überwiegende Mehrheit der "All-in-One"-Software für die lokale Entwicklung von Webanwendungen und nicht für die Installation auf Webservern vorgesehen ist. Eine Ausnahme von dieser Regel kann Zend Server sein, der von Zend Technologies vertriebene Server, der sowohl in Entwicklungs- als auch in Produktionsumgebungen funktionieren soll.

Beschleunigung

PHP ist im Grunde eine interpretierte Sprache, was auf Kosten der Codeausführungsgeschwindigkeit geht. Seine hohe Popularität gepaart mit seiner Verwendung auf Websites mit sehr hohem Traffic ( Yahoo , Facebook ) hat eine Reihe von Leuten dazu veranlasst, seine Leistung zu verbessern, um eine größere Anzahl von Benutzern dieser Websites bedienen zu können, ohne dass neue Server gekauft werden müssen.

Die Neufassung des PHP-Kerns, die zu Zend Engine für PHP 4 und dann Zend Engine 2 für PHP 5 führte, ist eine Optimierung. Zend Engine kompiliert intern PHP-Code in Bytecode, der von einer virtuellen Maschine ausgeführt wird . Projekte Open Source APC und eAccelerator arbeiten daran, den von der Zend Engine produzierten Bytecode zu verstecken , um zu verhindern, dass PHP Skripte für jede Anfrage lädt und analysiert. Ab PHP-Version 5.5 verfügt die Sprache über einen nativen Opcode-Cache (genannt OpCache), wodurch das APC-Modul obsolet wird.

Es gibt auch Projekte zum Kompilieren von PHP-Code:

Hinweise und Referenzen

  1. "  https://www.php.net/ChangeLog-8.php#8.0.7  " ,3. Juni 2021(Zugriff am 4. Juni 2021 )
  2. "  http://us3.php.net/archive/2016.php#id2016-09-29-1  "
  3. "  https://www.php.net/archive/2019.php#id2019-06-13-1  " (Zugriff am 20. Juni 2019 )
  4. "  https://www.php.net/archive/2019.php#2019-07-25-1  " (Zugriff am 2. August 2019 )
  5. “  PHP 7.4.0RC1 veröffentlicht!  » (Zugriff am 13. September 2019 )
  6. "  https://www.php.net/archive/2019.php#id2019-06-26-1  "
  7. "  https://www.php.net/archive/2019.php#2019-07-11-1  "
  8. "  https://www.php.net/archive/2019.php#2019-08-08-1  "
  9. "  https://www.php.net/archive/2019.php#2019-08-22-1  "
  10. "  https://www.php.net/archive/2019.php#2019-09-19-1  "
  11. "  https://www.php.net/archive/2019.php#2019-10-03-1  "
  12. "  https://www.php.net/archive/2019.php#2019-10-18-1  "
  13. "  https://www.php.net/archive/2019.php#2019-10-31-2  "
  14. "  https://www.php.net/archive/2019.php#2019-11-14-1  "
  15. "  https://www.php.net/archive/2020.php#2020-10-29-2  "
  16. "  PHP: Vorwort - Handbuch  " , auf www.php.net
  17. "  Quelle  "
  18. „  PHP Manual: Preface  “ , auf PHP.net (Zugriff am 7. November 2007 ) .
  19. (in) "  PHP-Lizenz wird von der Free Software Foundation kostenlos anerkannt  " (Zugriff am 7. November 2007 )
  20. „  Einführung in PHP  “ auf openclassrooms.com (Zugriff am 14. Juli 2015 ) .
  21. "  PHP ist tot... Es lebe PHP!" - Hacker-Mittag  " ,26. Oktober 2018
  22. „  Afup – French Association of PHP Users  “ , auf afup.org (Zugriff am 29. November 2018 )
  23. „  AFUP Day 2019  “ , auf event.afup.org (Zugriff am 29. November 2018 )
  24. Rasmus Lerdorf , „  Ich frage mich, warum die Leute immer wieder schreiben, dass PHP jemals in Perl geschrieben wurde. Es war nie. #php  » [html] , Twitter ,20. Juli 2012(Zugriff am 5. September 2014 )
  25. „  Google Groups  “ , unter groups.google.com
  26. „  History of PHP  “ auf PHP.net (Zugriff am 7. November 2007 ) .
  27. (in) "  Netcraft Web Server Survey - Februar 2002  " (Zugriff am 7. November 2007 )
  28. "  PHP: PHP-Nutzungsstatistiken  " , auf www.php.net
  29. „  PHP wächst und wächst – Netcraft  “ , auf news.netcraft.com
  30. Statistik derProgrammiersprachen  " ,6. März 2013
  31. "  Serverseitige Programmiersprachen  " , w3techs,28. April 2016
  32. "  PHP und Perl bringen die Unternehmenspartei zum Absturz  "
  33. "  PHP: rfc: releaseprocess  " , auf wiki.php.net
  34. „  PHP: rfc: jit  “ , auf wiki.php.net (Zugriff am 5. April 2019 )
  35. (in) "  History PHP-Ausgaben  " auf PHP.net (Zugriff am 6. April 2020 )
  36. "  PHP: rfc: typed_properties_v2  " , auf wiki.php.net (Zugriff am 4. April 2019 )
  37. „  PHP: rfc: preload  “ auf wiki.php.net (Zugriff am 4. April 2019 )
  38. "  PHP: rfc: null_coalesce_equal_operator  " , auf wiki.php.net (Zugriff am 4. April 2019 )
  39. "  PHP: rfc: Improve-openssl-random-pseudo-bytes  " , auf wiki.php.net (Zugriff am 4. April 2019 )
  40. "  PHP: rfc: schwachrefs  " , auf wiki.php.net (Zugriff am 5. April 2019 )
  41. "  PHP: rfc: ffi  " , auf wiki.php.net (Zugriff am 5. April 2019 )
  42. "  PHP: rfc: permanent_hash_ext  " , auf wiki.php.net (Zugriff am 5. April 2019 )
  43. "  PHP: rfc: password_registry  " , unter wiki.php.net (Zugriff am 5. April 2019 )
  44. "  PHP: rfc: mb_str_split  " , unter wiki.php.net (Zugriff am 5. April 2019 )
  45. "  PHP: rfc: reference_reflection  " , auf wiki.php.net (Zugriff am 5. April 2019 )
  46. "  PHP: rfc: deprecate-and-remove-ext-wddx  " , auf wiki.php.net (Zugriff am 5. April 2020 )
  47. "  PHP: rfc: custom_object_serialization  " , auf wiki.php.net (Zugriff am 5. April 2020 )
  48. "  PHP: rfc: flexible_heredoc_nowdoc_syntaxes  " , auf wiki.php.net
  49. "  PHP: rfc: list_reference_assignment  " , auf wiki.php.net
  50. "  PHP: rfc: pcre2-migration  " , auf wiki.php.net
  51. "  PHP: hrtime - Handbuch  " , auf php.net
  52. Andrea Faulds, Zeev Suraski, "  PHP RFC: Name der nächsten PHP-Version  " ,2004(Zugriff am 22. November 2014 )
  53. "  PHP Next Generation übertrifft Facebooks HHVM  " , auf The Zend Blog ,17. Juli 2014(Zugriff am 22. November 2014 )
  54. Antoine Crochet-Damais, "  Andi Gutmans (Zend Technologies):" PHP Next Generation übertrifft Facebooks HHVM "  " , auf Le Journal du Net ,25. Juni 2014(Zugriff am 22. November 2014 )
  55. Zeev Suraski, „  PHPNG-Benchmarking!  » , Auf Zeevs Blog ,Juli 2014(Zugriff am 22. November 2014 )
  56. Andrei Zmievski, Designdokument zur PHP-Unicode-Unterstützung (Post der Mailingliste)  " ,10. August 2005(Zugriff am 9. Februar 2014 )
  57. "  PHP 5.5 oder 6.0  " (Zugriff am 9. Februar 2014 )
  58. Andrei Zmievski, "  The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6  " (Zugriff am 9. Februar 2014 )
  59. Rasmus Lerdorf, "  PHP 6 (Mailinglistenpost)  " ,11. März 2010(Zugriff am 7. Februar 2014 )
  60. Adam Harvey, „  Grübeln über PHP 5 ++ (Mailinglistenpost)  “ ,11. März 2010(Zugriff am 7. Februar 2014 )
  61. „  Register Globals  “ .
  62. (in) "  History of PHP  " , The PHP Group (abgerufen am 18. Juni 2010 )
  63. (en) "  PHP: PHP 5 ChangeLog  " , The PHP Group,8. November 2007(Zugriff am 22. Februar 2008 )
  64. (in) PHP 5.3.0 veröffentlicht!
  65. (in) 5.3.0 Änderungsprotokoll
  66. ( Zoll ) FPM in 5.3
  67. "  PHP: Interner Webserver - Handbuch  " , auf php.net
  68. (in) PHP 5.5.0 veröffentlicht.
  69. (in) PHP 7.0.0 veröffentlicht
  70. (de) [1]
  71. (de) [2]
  72. (in) PHP 7.1.0 veröffentlicht
  73. (in) PHP 7.1.1 veröffentlicht
  74. (in) PHP 7.1.3 veröffentlicht
  75. (de) Freigegeben
  76. (de) Freigegeben
  77. (de) [3]
  78. (en) [4]
  79. (en) "  PHP 7.3.x changeLogs  " , auf www.php.net (Zugriff am 21. Mai 2020 )
  80. "  Neu in PHP 7.3 - CODE | DESIGN • fr  " , auf codedesign.fr (Zugriff am 15. September 2018 )
  81. (en) "  PHP 7.4.x changeLogs  " , auf php.net (Zugriff am 23. Dezember 2019 )
  82. „  PHP: todo: php80  “ , unter wiki.php.net (Zugriff am 16. Juni 2020 ) .
  83. /usr/bin/ ist das Standardverzeichnis für ausführbare Binärdateien auf den meisten Distributionen.
  84. (in) "  PHP RFC: Alternative PHP-Tags entfernen  "
  85. "  PHP: DOM - Handbuch  " , auf php.net
  86. Sébastien Rohaut , Algorithmics: Fundamentale Programmiertechniken (mit Beispielen in PHP) , Editions ENI,2009( online lesen )
  87. "  PHP: Schnittstellen - Handbuch  " , auf php.net
  88. "  Elroubio - elePHPant Schöpfer seit 1995  " , auf www.elroubio.net
  89. elePHPant , „  Adoptiere deinen elePHPant!  » , Auf www.elephpant.com
  90. "  Ein Feldführer für Elefanten  "
  91. "  IMAC - Die einzige öffentliche Ingenieurausbildung, die Kunst und Wissenschaft kombiniert  " , auf ingenieur-imac.fr (Zugriff am 16. Oktober 2019 )
  92. "  Facebook versucht die PHP-Leistung mit der virtuellen HipHop-Maschine zu verbessern  "
  93. HipHop für PHP: Move Fast "Archivierte Kopie" (Version vom 22. Juli 2018 im Internetarchiv ) , Haiping Zhao le2. Februar 2010

Anhänge

Literaturverzeichnis

  • (de) Luke Welling und Laura Thomson, PHP- und MySQL-Webentwicklung , Sams Publishing,2008, 4 th  ed. ( ISBN  978-0-672-32916-6 und 0-672-32916-6 , OCLC  854795897 )
  • Damien Seguy und Philippe Gamache, PHP 5 und MySQL Sicherheit, 3 rd Edition , Eyrolles ,1 st Dezember 2011, 277  S. ( ISBN  978-2-212-13339-4 und 2-212-13339-1 , online lesen )
  • John Engels PHP 5 Klassen und Übungen, 3 - ten Auflage, Eyrolles, 2013, 631 Seiten ( ISBN  978-2-212-13725-5 )

Zum Thema passende Artikel

Externe Links