www.wikidata.de-de.nina.az
Dieser Artikel behandelt die Programmiersprache Zu weiteren Bedeutungen siehe PHP Begriffsklarung PHP rekursives Akronym und Backronym fur PHP Hypertext Preprocessor ursprunglich Personal Home Page Tools ist eine Skriptsprache mit einer an C und Perl angelehnten Syntax die hauptsachlich zur Erstellung dynamischer Webseiten oder Webanwendungen verwendet wird PHP wird als freie Software unter der PHP Lizenz verbreitet PHP zeichnet sich durch breite Datenbankunterstutzung 10 und Internet Protokolleinbindung sowie die Verfugbarkeit zahlreicher Funktionsbibliotheken 11 aus PHPBasisdatenErscheinungsjahr 8 Juni 1995 1 2 Designer Rasmus Lerdorf 3 Entwickler Rasmus Lerdorf 4 Andi Gutmans 4 PHP Group Zend Technologies 5 Zeev SuraskiAktuelle Version 8 3 0 6 23 November 2023 Wichtige Implementierungen Zend Engine HHVM Phalanger Compiler Beeinflusst von C Perl 7 C 7 Java 7 Tcl 8 HTML JavaScriptBetriebssystem Unix ahnliches System Microsoft WindowsLizenz PHP Lizenz 9 www php net Inhaltsverzeichnis 1 Hallo Welt Programm 2 Geschichte 2 1 Personal Home Page Tools PHP1 2 2 PHP FI PHP 2 2 3 PHP 3 2 4 PHP 4 2 5 PHP 5 2 6 PHP 7 2 7 PHP 8 3 Verbreitung 4 Popularitat 5 Funktionsweise 6 Syntax 6 1 Kommentare 6 2 PHP und HTML 6 3 Einbindung von Dateien 6 4 Variablen 6 5 Konstanten 7 Datentypen 8 Ausfuhrung 8 1 Allgemein 8 2 Bytecode Caching 8 3 Kompilierung 9 Verbreitete PHP Applikationen 10 Lizenz und Bezug 11 Weiterentwicklungen 11 1 Objektorientierung 11 2 Datenbankanbindung 11 3 Speicheroptimierung 11 4 Webserver 11 5 Unicode 12 Sessions 13 Bewertung 14 Literatur 15 Weblinks 16 EinzelnachweiseHallo Welt Programm BearbeitenEine von mehreren moglichen Versionen des Hallo Welt Programms in PHP lt php echo Hallo Welt gt Geschichte BearbeitenSiehe auch Versionsgeschichte von PHP Seit der Veroffentlichung im Jahr 1995 nahmen die Entwickler umfangreiche Anderungen innerhalb der Programmiersprache vor Der Kern der Sprache wurde mit PHP 3 komplett neu erstellt Deutliche Anpassungen wurden mit PHP 5 bzw PHP 5 3 vorgenommen die den Fokus der Programmiersprache auf die objektorientierte Programmierung legt Klassen waren jedoch bereits mit der vierten Version nutzbar Personal Home Page Tools PHP1 Bearbeiten PHP wurde 1995 von Rasmus Lerdorf entwickelt Der Begriff stand damals noch fur Personal Home Page Tools und war ursprunglich als Ersatz fur eine Sammlung von Perl Skripten gedacht die Lerdorf zur Protokollierung der Zugriffe auf seinen Online Lebenslauf geschrieben hatte 12 PHP FI PHP 2 Bearbeiten Bald schuf Lerdorf eine umfangreichere Version in der Programmiersprache C in der PHP bis heute entwickelt wird Das schliesslich veroffentlichte PHP FI FI stand fur Form Interpreter war Perl sehr ahnlich wenn auch eingeschrankter PHP 3 Bearbeiten PHP 3 wurde von Andi Gutmans und Zeev Suraski 1997 neu geschrieben da das inzwischen erschienene PHP FI 2 ihrer Meinung nach fur E Commerce unzureichend war Lerdorf kooperierte nun mit Gutmans und Suraski und so wurde die Entwicklung von PHP FI eingestellt Die Version PHP3 brachte die Verbreitung der Web Skriptsprache PHP bedeutend voran Die neue Sprache wurde einfach unter dem Namen PHP veroffentlicht ein rekursives Akronym fur PHP Hypertext Preprocessor um die in den Vorversionen PHP und PHP FI vorhandene Implizierung einer personlichen Nutzung zu beseitigen 13 PHP 4 Bearbeiten Das von Gutmans und Suraski gegrundete Unternehmen Zend Technologies Ltd entwickelte in der Folge die Zend Engine 1 die den Kern der PHP 4 Standardimplementierung bildet Mit PHP 4 wurden die Ausfuhrungsgeschwindigkeit komplexer Applikationen und die Sicherheit bei Verwendung globaler Variablen verbessert Eingefuhrt wurden die Unterstutzung fur viele weitere Webserver das Sessionmanagement die Ausgabepufferung sowie eine Anzahl neuer Sprachkonstrukte Da das World Wide Web Ende der 1990er Jahre stark wuchs bestand grosser Bedarf an Skriptsprachen mit denen sich dynamische Webseiten realisieren lassen PHP wurde mit der Zeit fur die Webentwicklung popularer als der vorherige De facto Standard Perl weil es durch seine Spezialisierung als einfacher erlernbar galt Seit 2008 sind die Weiterentwicklung und der Support fur PHP 4 eingestellt PHP 5 Bearbeiten Im Sommer 2004 wurde mit Version 5 0 eine weitere Entwicklungsstufe veroffentlicht Wesentlicher Unterschied zum Vorganger ist die Zend Engine II die vor allem ein verbessertes Objektmodell nutzt somit objektorientierte Anwendungen effizienter ausfuhrt und Sprachkonstrukte wie Uberladung ermoglicht Dazu kommen Exceptions Reflection die Integration der Datenbank SQLite sowie Erweiterungen bei XML und DOM Handhabung Ursprunglich als fruher Nachfolger von PHP 5 geplant wurde die Entwicklung von PHP 6 eingestellt Geplant war unter anderem die Unterstutzung verschiedener Unicode Standards 14 15 Einige Verbesserungen sind in PHP Versionen ab 5 3 implementiert Weitere Moglichkeiten im Rahmen der objektorientierten Programmierung wurden mit PHP 5 3 Namespaces Late Static Bindings 5 4 Traits Array und Konstruktor Dereferenzierung und 5 5 Generatoren vorangetrieben 16 17 Die Version 5 6 fuhrte variadische Funktionen als natives Sprachfeature und Argument Unpacking ein um die Verwendung einer variablen Anzahl von Parametern zu ermoglichen 18 Mitte 2011 entschieden die Entwickler den laut eigenen Angaben chaotischen Release Prozess zu vereinheitlichen Demnach sollen regelmassig neue Versionen erscheinen und der Support fur altere Versionen mit einer festen Zeitspanne garantiert werden 19 Die Weiterentwicklung von PHP 5 4 wurde im Herbst 2015 eingestellt Auch Sicherheitsupdates werden seit der Veroffentlichung von PHP 5 4 45 am 3 September 2015 nicht mehr zur Verfugung gestellt 20 Die Weiterentwicklung von PHP 5 5 wurde am 21 Juli 2016 eingestellt Der aktive Support wurde fur PHP 5 6 zum 1 Januar 2017 eingestellt 21 Auch der Security Support wurde am 31 Dezember 2018 eingestellt 22 Sicherheitsupdates fur diese Versionen werden nur noch im Sonderfall bereitgestellt 23 24 PHP 7 Bearbeiten Nach einer Diskussion daruber ob die nachste PHP Version den Namen des gescheiterten PHP 6 wiederaufnehmen soll oder stattdessen eine Versionsnummer uberspringen und PHP 7 heissen soll wurde am 29 Juli 2014 bekanntgegeben dass die Entwickler sich mit 58 zu 24 Stimmen fur die Hauptversionsnummer 7 entschieden haben Der Nachfolger von PHP 5 heisst somit offiziell PHP 7 25 26 PHP 7 hat eine um bis zu 30 Prozent geringere Ausfuhrungszeit als PHP 5 da unter anderem Hashtabellen neu implementiert wurden 27 Durch diverse Optimierungen am PHP Kern beansprucht die neue Version zudem weniger Speicherplatz als der Vorganger Auch Komponenten wie Parser Lexer und Bytecode Generator wurden einigen Veranderungen unterzogen 28 Die erste Vorabversion Alpha 1 erschien am 11 Juni 2015 die fertige Version am 3 Dezember 2015 Bei der Entwicklung von PHP 7 wurde teilweise die Abwartskompatibilitat aufgegeben beispielsweise die weitverbreiteten mysql Funktionen fielen dabei weg 29 Neue Features beinhalten Engine Exceptions anonyme Klassen und CSPRNG Funktionen Der aktive Support fur PHP 7 0 wurde am 3 Dezember 2017 eingestellt Genau ein Jahr spater am 3 Dezember 2018 soll auch der Security Support fur diese Version eingestellt werden 30 Anfang Dezember 2016 wurde PHP 7 1 veroffentlicht Am 30 November 2017 folgte schliesslich nach einer ca viermonatigen Betaphase PHP 7 2 Die Neuerungen der aktuellen Version sollen in erster Linie fur mehr Klarheit sorgen 31 PHP 7 3 erschien am 6 Dezember 2018 32 Es soll eine deutlich verbesserte Performance zeigen 33 Seit dem 24 Oktober 2019 gibt es die Version 7 3 11 nachdem aufgedeckt wurde dass Nginx Server mit PHP FPM aus der Ferne angreifbar waren 34 35 PHP 7 4 erschien am 28 November 2019 36 PHP 8 Bearbeiten PHP 8 wurde am 26 November 2020 veroffentlicht 37 Die Version unterstutzt unter anderem Just in time Kompilierung was in Micro Benchmarks fur eine Steigerung der Performance um mehr als 45 Prozent sorgt 38 und bringt einige neue Befehle mit So liefert PHP 8 beispielsweise mit der Funktion WeakMaps eine Erweiterung von WeakRefs die Nutzern bereits in PHP 7 4 zur Verfugung stand Diese Funktion ermoglicht einen ressourcenschonenden Umgang mit Objekten Ausserdem unterstutzt PHP 8 beliebige Union Types Damit konnen bis auf einige wenige Ausnahmen zwei oder mehrere Typen eine Union eingehen 38 Ab 2006 hat Microsoft unter anderem durch die Bereitstellung von Binardateien Bibliotheken und einem Modul fur den IIS PHP offiziell unterstutzt 2020 hat das Unternehmen angekundigt den Support fur PHP ab Version 8 0 auslaufen zu lassen 39 Verbreitung Bearbeiten nbsp Das LAMP Software Bundel hier zusatzlich mit Squid umfasst PHP PHP wurde Anfang 2013 auf etwa 244 Millionen Websites eingesetzt 40 und Anfang 2019 von 79 aller Websites als serverseitige Programmiersprache verwendet 41 PHP ist die am haufigsten serverseitig verwendete Programmiersprache zum Erstellen von Websites 42 Zudem ist sie bei den meisten Webhostern vorinstalliert Popularitat BearbeitenPHP ist in seiner ursprunglichen Form als web zentrische Skriptsprache fur Webdokumentvorlagen Templates konzipiert Die weite Verbreitung des Apache Webservers und des passenden PHP Erweiterungsmoduls ermoglicht eine preiswerte und niederschwellige Bereitstellung von Webapplikationsumgebungen auf denen Software als einfache Quelltextdateien schnell und unkompliziert uber Standardprotokolle wie SFTP lauffertig ausgeliefert werden kann Zudem ermoglicht die schrittweise Erweiterung von statischen Webdokumenten HTML mit kleinen Hilfsfunktionen und uberschaubaren Logik Blocken einen leichten Einstieg in die serverseitige Webprogrammierung Da der Einsatz von PHP als Template Engine in dieser Form zustandsfrei ist und sich oft auf uberschaubare Prozeduren beschrankt entfallen bei der Programmierung in PHP in vielen Situationen auch schwierigere tiefer gehende Problemstellungen der Informatik wie zum Beispiel Speicher und Prozessverwaltung oder die Notwendigkeit von Ruckruffunktionen Diese Eigenschaften sind auch mit Ursache fur die weite Verbreitung und Popularitat von PHP Funktionsweise Bearbeiten nbsp Darstellung der Funktionsweise von PHPPHP ist ein System das PHP Code serverseitig verarbeitet Das bedeutet dass der Quelltext nicht an den Webbrowser ubermittelt wird sondern an einen Interpreter auf dem Webserver Erst die Ausgabe des PHP Interpreters wird an den Browser geschickt In den meisten Fallen ist das ein HTML Dokument wobei es mit PHP aber auch moglich ist andere Dateitypen wie Bilder oder PDF Dateien zu generieren Um eine PHP Datei im Rahmen einer Webanwendung ausfuhren zu konnen benotigt man ein System das mit den in der Datei enthaltenen Anweisungen umgehen kann Aus diesem Grund wird durch eine Schnittstelle wie ISAPI oder CGI der Interpreter von einem Server Daemon oder Server Dienst wie Apache oder IIS ausgefuhrt Die Kombination von Linux Windows macOS als Betriebssystem Apache als Webserver MySQL als Datenbanksystem und PHP wird LAMP fur Linux WAMP fur Windows oder MAMP fur Mac OS X genannt Fertige LAMP MAMP und WAMP Pakete die das einzelne Laden und Konfigurieren von Paketen aus dem Internet unnotig machen werden etwa im Projekt XAMPP entwickelt Hier gibt es Versionen fur Linux Solaris Windows und Mac OS X die jedoch nur fur Test und Entwicklungsumgebungen genutzt werden sollen 43 Da PHP normalerweise in einer Webserver Umgebung lauft unterliegt es auch dem zustandslosen HTTP Jede PHP Seite belastet den Webserver durch den Interpreter zudem arbeitet der Interpreter den Quelltext bei jedem Aufruf erneut ab Das mindert die Reaktionsgeschwindigkeit des Servers und erhoht die Last Um dem entgegenzuwirken stehen verschiedene Bytecode Caches zur Verfugung die eine zur Ausfuhrung vorbereitete Version des Programmes zwischenspeichern und somit den Zugriff auf diese Datei beim nachsten Aufruf beschleunigen siehe auch Abschnitt Bytecode Caching und Artikel PHP Beschleuniger Mit PHP lassen sich auch kommandozeilenorientierte Skripte schreiben die vom Internet unabhangig sind Die Qt Erweiterung und die GTK Erweiterung stellen sogar eine Programmierschnittstelle fur eine grafische Oberflache zur Verfugung fur die weder ein Webserver noch ein Browser benotigt werden Die ersten Versionen der Schnittstellen zur grafischen Oberflache und zu anderen Betriebssystemfunktionen waren sparlich und wurden kaum verwendet Die aktuell entwickelte PHP GTK Version 2 strebt hingegen eine Abdeckung der GTK API von 95 an 44 Gegenwartig wird PHP jedoch vor allem auf Webservern genutzt Syntax BearbeitenKommentare Bearbeiten In PHP sind drei verschiedene Kommentararten moglich einzeiliger Kommentar einzeiliger Kommentar mehrzeiliger Kommentar PHP und HTML Bearbeiten Ein PHP Skript lasst sich in HTML integrieren lt DOCTYPE HTML gt lt html gt lt head gt lt title gt Hallo Welt Beispiel lt title gt lt head gt lt body gt lt php echo Hallo Welt gt lt body gt lt html gt Die alternative Syntax fur Kontrollstrukturen ermoglicht es Kontrollstrukturen wie bedingte Anweisungen oder Schleifen zu vereinfachen Statt der offnenden geschweiften Klammer wird ein Doppelpunkt verwendet Die schliessende Klammer ersetzt ein end gefolgt vom Namen der Struktur z B endif Dies ist fur eine Einbettung in HTML hilfreich und verbessert die Ubersichtlichkeit Bei einer schliessenden geschweiften Klammer ist dagegen beispielsweise nicht klar ob diese von einer bedingten Anweisung oder einer Schleife stammt insbesondere wenn mehrere Kontrollstrukturen verschachtelt wurden Folgendes Beispiel zeigt die alternative Syntax und darunter die regulare Schreibweise mit geschweiften Klammern lt php if a 5 gt A entspricht 5 lt php endif gt Zum Vergleich Die regulare Schreibweise lt php if a 5 gt A entspricht 5 lt php gt In beiden Fallen wird der Text A entspricht 5 nur ausgegeben wenn die Variable a auf den entsprechenden Wert gesetzt wurde Die alternative Syntax ist standardmassig aktiv es sind keine Anderungen an der PHP Konfiguration notwendig 45 Einbindung von Dateien Bearbeiten In ein PHP Skript konnen externe Dateien eingebunden werden Dazu gibt es vier verschiedene Anweisungen require pfad datei php wenn die Datei nicht eingebunden werden kann folgt ein Fehler include pfad datei php wenn die Datei nicht eingebunden werden kann folgt eine Warnung require once pfad datei php bindet die Datei nur ein wenn sie zuvor noch nicht eingebunden wurde include once pfad datei php bindet die Datei nur ein wenn sie zuvor noch nicht eingebunden wurde Variablen Bearbeiten Variablennamen mussen mit dem Dollarzeichen beginnen Variablen konnen in PHP nicht deklariert werden Die Auswertung einer Variablen der noch kein Wert zugewiesen wurde ergibt einen Saumniswert ein Tippfehler im Variablennamen ist in PHP kein Fehler variable wert Konstanten Bearbeiten Konstanten mussen in PHP deklariert werden Sie werden mittels define name wert global oder in Klassen mittels const name wert lokal erzeugt Seit PHP 7 1 konnen Klassenkonstanten auch eine Sichtbarkeit besitzen ohne explizite Angabe sind sie wie in fruheren PHP Versionen automatisch public Gangige Praxis ist es Konstantennamen in Grossbuchstaben zu schreiben dies ist jedoch nicht von der Sprache vorgeschrieben define MEINE KONSTANTE wert class MyClass protected const KLASSEN KONSTANTE 420 Eine Konstante kann nachtraglich nicht editiert werden Klassenkonstanten existieren einmalig pro Klasse nicht pro Instanz der Klasse und verhalten sich somit wie statische Eigenschaften der Klasse Datentypen BearbeitenDer Datentyp einer Variablen wird ublicherweise nicht vom Programmierer im Quellcode bestimmt sondern automatisch wahrend der Laufzeit Er ergibt sich aus dem Kontext in dem eine Variable benutzt wird Explizite Typumwandlungen sind moglich Ab Version 7 konnen Funktionen auch einfache Typen fur ihre Parameter und ihren Ruckgabewert vorschreiben fur Argumente die Arrays oder Klassen beinhalten war dies bereits vorher moglich Skalare Datentypen wahrheitswert true boolean ganzzahl 5 integer kommazahl 4 71 float oder double zeichenkette foo string Zusammengesetzte Datentypen feld array foo bar array objekt new stdClass object funktion function callable echo hello world Spezielle Datentypen resource fopen foo w resource variable NULL NULLAusfuhrung BearbeitenAllgemein Bearbeiten PHP setzt man ublicherweise als Servermodul also als Teil der Webserver Prozesse oder uber FastCGI ein Setzt man PHP als CGI Programm ein so kann sich das negativ auf die Ausfuhrungsgeschwindigkeit auswirken da fur jede HTTP Anfrage eine neue PHP Interpreter Instanz gestartet wird Bytecode Caching Bearbeiten Hauptartikel PHP Beschleuniger Mit der Zend Engine wird ein PHP Skript zunachst zu einem plattformunabhangigen Bytecode Zend Opcode ubersetzt aus dem zur Ausfuhrung noch Maschinencode erzeugt werden muss Durch Verwendung eines Bytecode Cache kann die redundante Generierung von Opcode vermieden werden Bis zur Version 5 4 besass PHP keinen integrierten Bytecode Cache was dazu fuhrte dass ein Skript bei jedem Aufruf neu ubersetzt werden musste Um dem entgegenzuwirken wurden einige Erweiterungen entwickelt die diese Funktionalitat nachrusten wie beispielsweise den eAccelerator den Alternative PHP Cache XCache sowie den kommerziellen Zend Optimizer Ab der PHP Version 5 5 wurde der Zend Optimizer nun in die Skriptsprache integriert 46 Besonders bei umfangreichen Skripten kann durch einen Bytecode Cache eine deutliche Steigerung der Ausfuhrungsgeschwindigkeit erreicht werden 47 Kompilierung Bearbeiten Der PHP Compiler PHC 48 ist ein OpenSource Compiler von Paul Biggar welcher PHP Scripte in optimierten C Code ubersetzt und dann als eigenen Webserver ausfuhrt Die Grundlage fur PHC ist Biggars Doktorarbeit 49 aus dem Jahr 2009 und dessen mehrjahrige Forschung an Konzepten zur Konvertierung von Scriptsprachen in kompilierte Sprachen Mit HipHop existiert seit 2010 eine weitere freie Software zum Ubersetzen von PHP Code in optimierten C Code der kompiliert werden kann was nach Herstellerangaben dort die Leistung im Schnitt auf etwa das Doppelte steigert HipHop wurde von Facebook entwickelt um die Serverlast zu senken laut Facebook um etwa 40 Es ist als Open Source Software auf GitHub zu finden 50 Verbreitete PHP Applikationen BearbeitenEine Auswahl einiger weit verbreiteter Applikationen die in PHP entwickelt wurden Foren Software Invision Power Board XenForo MyBB phpBB Simple Machines Forum vBulletin und WoltLab Burning Board in der aktuellsten Version Woltlab Suite Forum genannt Webframeworks Laravel Zend Framework Symfony CakePHP CodeIgniter Neos Flow Horde WoltLab Community Framework mittlerweile Woltlab Suite Core Yii Grafische Benutzeroberflachen zur Verwaltung von Datenbanken zum Beispiel MySQL phpMyAdmin phpPgAdmin Content Management CMS und Blog Systeme WordPress TYPO3 Joomla Xoops Drupal Contao WebEdition Serendipity Customer Relationship Management Systeme CRM SugarCRM und Vtiger E Commerce Applikationen osCommerce Magento PrestaShop Pimcore Shopware OXID eShop Projektmanagement EGroupware Bildergalerien Coppermine 4images easyImage Sonstige MediaWiki DokuWikiLizenz und Bezug BearbeitenPHP 3 wurde unter der GNU General Public License GPL vertrieben Ab Version 4 wird PHP unter der PHP License vertrieben da der neue Parser die Zend Engine vom Hersteller Zend unter einer nicht GPL kompatiblen Lizenz veroffentlicht wird Die PHP Lizenz ist eine Softwarelizenz die die freie Verwendung und Veranderung der Quelltexte erlaubt Die Software kann kostenlos aus dem Internet geladen werden daneben ist PHP auch im Lieferumfang einiger Betriebssysteme so bei einigen Linux Distributionen oder macOS enthalten Weiterentwicklungen BearbeitenObjektorientierung Bearbeiten Ab Version 5 unterstutzt PHP durch Kapselung der Daten Destruktoren und Ausnahmebehandlung per Exceptions verbesserte und erweiterte Moglichkeiten der objektorientierten Programmierung Objekt Variablen sind in PHP 5 nur noch Referenzen auf Objekte und nicht wie in PHP 4 die Objekte selbst Aktuelle Versionen setzen weitere Konzepte objektorientierter Programmierung ein so werden ab Version 5 3 Namensraume 51 und ab Version 5 4 Traits unterstutzt Datenbankanbindung Bearbeiten Mit der objektorientierten Datenbankabstraktionsebene PDO wurde dem oft bemangelten uneinheitlichen Zugriff auf verschiedene Datenbanken in der Version 5 1 entgegengewirkt Speicheroptimierung Bearbeiten In PHP 5 3 wurde eine deutliche Verbesserung der Speicheranforderung eines PHP Skripts zur Laufzeit durch einen internen Garbage Collector erreicht Seitdem ist eine Zusatzinstallation von Zend Optimizer nicht mehr notwendig Webserver Bearbeiten Ab Version 5 4 ist ein einfacher Webserver integriert der uber die Kommandozeile konfigurierbar ist Er wird nicht fur den Produktiveinsatz empfohlen Unicode Bearbeiten In der Version 5 6 wurde der Standard Zeichensatz von ISO 8859 1 auf UTF 8 geandert 52 Um eine sichere Verarbeitung von Unicode zu gewahrleisten mussen die Multi Byte Varianten von stringverarbeitenden Funktionen verwendet werden 53 Also mb substr anstelle substr 54 oder mb strpos statt strpos 55 mb steht fur multi byte Sessions BearbeitenIn gewohnlichen Variablen gespeicherte Daten sind nur innerhalb eines HTTP Requests verfugbar im sogenannten request scope und werden am Ende des Seitenaufrufs aus dem Speicher geloscht Ein Besuch eines Nutzers besteht allerdings meist aus mehreren Seitenaufrufen Um Daten wie etwa die Produkte in einem Einkaufswagen fur eine ganze Sitzung verfugbar zu machen im session scope verwendet man Sessionvariablen In der Standardkonfiguration speichert PHP die Sessiondaten im Dateisystem des Webservers Daten die sessionubergreifend verfugbar sein sollen im application scope mussen auf anderen Wegen auf dem Webserver abgespeichert werden 56 Bewertung BearbeitenEinige PHP Module sind nicht threadsicher Die schwache Typisierung von PHP ist Teil des Konzepts aber auch eine mogliche Fehlerquelle Ein Fehler tritt etwa auf wenn numerische Ausdrucke mit Zeichenkettenausdrucken verglichen werden sollen Operator wobei es durch die implizite Typumwandlung zu unerwarteten Ergebnissen kommen kann sofern kein Operator fur typsichere Vergleiche Operator verwendet wurde Zudem ist es in PHP nicht moglich eine Variablendeklaration zu erzwingen Variablen werden vielmehr durch erstmalige Verwendung implizit deklariert Dieser Komfort hat zur Folge dass etwa Tippfehler im Variablennamen zu schwer auffindbaren Programmfehlern fuhren konnen Um solche Probleme zu finden kann das LogLevel E NOTICE aktiviert werden Dadurch wird beim Verwenden einer nicht initialisierten Variable eine Fehlermeldung ausgegeben 57 Es kann vorkommen dass Funktionen im Falle eines Fehlers keine Ausnahme auslosen Dadurch ist keine standardisierte Fehlerbehandlung moglich Mit Hilfe von set error handler kann fur diese Falle eine individuelle Fehlerbehandlung definiert werden 58 Seit PHP 7 konnen viele fatale Fehler mittels Ausnahmebehandlung ahnlich wie Exceptions abgefangen werden Literatur BearbeitenThomas Theis Einstieg in PHP 8 und MySQL 15 Edition Rheinwerk Bonn 2023 ISBN 978 3836292740 Christian Wenz Tobias Hauser PHP 8 und MySQL Das umfassende Handbuch zu PHP 8 Dynamische Webseiten von den Grundlagen bis zur fortgeschrittenen PHP Programmierung 2021 ISBN 978 3836283274 Frank Dopatka PHP Endlich objektorientiert Entwickler Press Frankfurt am Main 2010 ISBN 978 3 86802 039 7 Stephan Schmidt PHP 8 Objects Patterns and Practice 6 Auflage Apress 2021 ISBN 978 1484267905 Florence Maurice PHP 7 und MySQL dpunkt Heidelberg 2018 ISBN 978 3864906015 Weblinks Bearbeiten nbsp Commons PHP Sammlung von Bildern Videos und Audiodateien nbsp Wikibooks Websiteentwicklung PHP Lern und Lehrmaterialien nbsp Wiktionary PHP Bedeutungserklarungen Wortherkunft Synonyme Ubersetzungen Offizielle Website englisch PHP Handbuch in deutscher SpracheEinzelnachweise Bearbeiten Google Groups abgerufen am 11 Dezember 2018 PHP History of PHP Manual abgerufen am 25 August 2016 lerdorf com englisch abgerufen am 31 Mai 2021 a b php net www technotification com abgerufen am 14 August 2018 Version 8 3 0 23 November 2023 abgerufen am 23 November 2023 a b c PHP Preface Manual abgerufen am 25 August 2016 Rasmus Lerdorf PHP on Hormones 29 Juli 2013 abgerufen am 19 Marz 2016 php net abgerufen am 25 August 2016 PHP Handbuch Datenbankerweiterungen PHP Handbuch Erweiterungen Ankundigung von Rasmus Lerdorf zu PHP 1 0 in der Newsgroup comp infosystems www authoring cgi Die Geschichte von PHP auf php net abgerufen am 4 September 2013 Resetting PHP6 The Good the Bad and the Ugly What Happened to Unicode and PHP 6 Die Entwicklung von PHP 5 4 im Uberblick heise de abgerufen am 21 Marz 2013 New features Neue Funktionen fur PHP 5 4 im Uberblick englisch abgerufen am 21 Marz 2013 Was bringt PHP 5 6 Neues Nicht mehr online verfugbar In cyon ch Archiviert vom Original am 24 Marz 2016 abgerufen am 16 Marz 2016 RFC releaseprocess Entwurf und Abstimmung uber einen vereinheitlichten Release Prozess wiki php net englisch abgerufen am 21 Marz 2013 PHP Unsupported Branches In secure php net Abgerufen am 16 Marz 2016 heise de Supported Versions php net Englisch PHP News Archive 2016 In php net Abgerufen am 26 Juli 2016 PHP Supported Versions In secure php net Abgerufen am 16 Marz 2016 php internals Re Name of Next Release of PHP again PHP RFC Name of Next Release of PHP PHP7 PHP reduziert Array Speicherbedarf deutlich Golem de PHP7 kurzere Lade und Zugriffzeiten im Web In 1 amp 1 Digital Guide 11 Januar 2018 abgerufen am 15 September 2018 PHP bricht Abwartskompatibilitat Currently Supported Versions php net abgerufen am 22 November 2018 Programmiersprachen PHP 7 2 erscheint punktlich In heise de Abgerufen am 4 Dezember 2017 PHP 7 ChangeLog In php net Abgerufen am 21 November 2019 englisch Alexander Neumann Update freigegeben Was neu ist in PHP 7 3 In heise de 6 Dezember 2018 abgerufen am 16 Dezember 2018 heise online Updates fur PHP7 NGINX Server mit PHP FPM waren aus der Ferne angreifbar Abgerufen am 29 Oktober 2019 CVE 2019 11043 Vulnerability in PHP FPM Could Lead to Remote Code Execution on nginx 24 Oktober 2019 abgerufen am 29 Oktober 2019 deutsch PHP 7 4 0 Released In php net Abgerufen am 1 Dezember 2019 englisch PHP 8 0 0 Released In php net 26 November 2020 abgerufen am 26 November 2020 a b PHP 8 Alle Informationen zur neuen Version In Digital Guide IONOS 21 November 2021 abgerufen am 29 November 2021 heise online Microsoft stellt offiziellen Windows Support fur PHP ab Version 8 0 ein Abgerufen am 29 November 2021 PHP just grows amp grows Ergebnisse einer Netcraft Studie Januar 2013 englisch abgerufen am 1 Februar 2013 Usage of server side programming languages for websites Abgerufen am 16 April 2019 Historical yearly trends in the usage of server side programming languages for websites Abgerufen am 20 Januar 2015 Sicherheitswarnung der XAMPP Entwickler apachefriends org abgerufen am 4 September 2013 php net englisch abgerufen am 17 Juni 2007 Alternative syntax for control structures In php net Abgerufen am 8 Oktober 2022 Opcode Cache Zend Optimizer wird in PHP 5 5 integriert golem de Sascha A Carlin PHP on Fire Five Opcode Caches compared In itst net 15 Oktober 2006 abgerufen am 29 Juni 2010 englisch Paul Biggar PHP Compiler PHC auf Basis einer mehrjahrigen Doktorarbeit 1 Oktober 2009 abgerufen am 29 Juli 2011 Paul Biggar Design and Implementation of an Ahead of Time Compiler for PHP Trinity College Dublin 1 Oktober 2009 abgerufen am 29 Juli 2011 englisch Alexander Neumann Facebook will PHP beschleunigen In heise Developer heise Zeitschriften Verlag 3 Februar 2010 abgerufen am 23 Februar 2010 PHP Handbuch Namespaces PHP Beschreibung der php ini Direktiven des Sprachkerns Manual Abgerufen am 27 Dezember 2019 PHP Multibyte String Funktionen Manual Abgerufen am 27 Dezember 2019 php manual mb substr php manual mb strpos Stephan Schmidt PHP Design Patterns 2 Auflage O Reilly Koln 2009 S 403f PHP Handbuch Option error reporting set error handler Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung PHP Dokumentation Normdaten Sachbegriff GND 4546126 0 lobid OGND AKS Abgerufen von https de wikipedia org w index php title PHP amp oldid 236259883 PHP 5