====== Bevor es endlich losgeht... ====== ...muss natürlich erst einmal darauf eingegangen werden, was PHP nun **ist**. Auf den nachfolgenden Seiten findest du eine Einführung in die Programmiersprache PHP. Du lernst anhand kleiner Beispiele die Syntax kennen und verstehen. Außerdem erhältst Du einen Überblick über die wichtigsten grundlegenden Funktionen. ===== Was PHP ist ===== PHP ist eine Skriptsprache, die serverseitig verarbeitet wird und deren Befehle direkt in HTML-Dokumente geschrieben werden können. Um PHP-Skripte auszuführen, wird ein Server benötigt, der entsprechend konfiguriert ist. Wie Du einen Server einrichtest (auf Windows **und** Linux) findest du [[installing|hier]]. Die meisten Webserver sind so konfiguriert, dass Du den PHP-Dateien eine bestimmte Erweiterung geben musst. Ohne diese würde der Webserver die Datei nicht an den PHP Prozessor weiterleiten. Für gewöhnlich werden die Dateierweiterungen .php .php3 .php4 und .php5 unterstützt. **Aber:** Man ist fast immer auf der sicheren Seite, wenn man das Dokument mit .php speichert. PHP kannst Du mit jedem Texteditor schreiben. Ich empfehle dir einen Editor, der die geschriebene Syntax farblich hervorhebt. So behältst Du den Überblick über lange Skripte. Außerdem sollte der Editor auch das Skript direkt auf Tastendruck, oder auch sofort, überprüfen können, ohne den Browser öffnen zu müssen und die Seite neu zu laden. Meine Empfehlung ist der Editor [[start:edit:greany|Geany]], dieser ist kostenlos und ist für Linux, Windows und Mac verfügbar. Einen Überblick über verschiedene Editoren zeigt [[start:edit:start|diese Seite]]. ===== Syntax ===== Der PHP-Quellcode kann direkt in den HTML-Text geschrieben und auch von HTML-Texten unterbrochen werden. PHP arbeitet den Code von oben nach unten ab. Du benötigst eine Kennzeichnung, die dem PHP-Prozessor mitteilt, wann PHP beginnt und endet. Innerhalb des als PHP gekennzeichneten Abschnitts darf kein reines HTML stehen. Es gibt dafür vier verschiedene Schreibweisen. Der XML-Stil wird in Zukunft am meisten verwendet. Ich empfehle dir, **ausschließlich diesen** einzusetzen. Du bist damit unabhängig von Einstellungen in der INI-Datei und damit ist eine einfache Portierbarkeit deiner Skripte von einem Server auf den anderen gewährleistet. Dazu gibt es keine Probleme, falls Du andere Dateien im XML-Format verarbeiten musst. HTML-Code... ... oder auch Der SGML-Stil ist eine kürzere Lösung: Diese Variante kann mit den Erweiterungen für XML-Verarbeitung jedoch Fehler verursachen, da in XML der Öffnen-/Schließen-Tag genau derselbe ist. Eine weitere Variante bindet PHP ähnlich wie JavaScript in den Quelltext ein: ASP-Puristen mögen die folgende Variante meist sehr: <% // PHP-Quelltext %> ===== Kommentare ===== Kommentare sind ein wichtiges Werkzeug für den Programmierer. Sie erleichtern es, den Überblick über die Skripte zu behalten. Des weiteren ist der Austausch von Quelltexten mit anderen Entwicklern einfacher, da die Kommentare auch diesem den Überblick erleichtern. Manchmal werden Kommentare auch nur genutzt, um kurzzeitig einzelne Anweisungen des Quelltextes zu deaktivieren. Willst du über mehrere Zeilen kommentieren, so sei dir diese Variante auf den Weg gegeben: Für kurze Kommentare verwendest du besser die der [[c:start|Programmiersprache C]] entnommene Schreibweise: Kommentare dürfen auch abgeschlossenen Anweisungen folgen: ===== Anweisungen ===== Anweisungen werden von oben nach unten abgearbeitet. Das heißt, dass zuerst Befehl1 und dann Befehl2 ausgeführt wird. PHP unterstützt: * Zuweisungen * Funktionsaufrufe * Bedingungen * Schleifen Dabei ist zu beachten, dass in PHP genau wie in [[cpp:start|C++]] Befehle mit einem Semikolon(";") abgeschlossen werden. Die erste Anweisung, die Dir im weiteren Verlauf noch häufig begegnen wird, heißt ''echo''. Dieser Befehl gibt einen festgelegten Text an den Browser aus. Die Anweisung echo **Ausgabe: **\\ ''Meine erste Ausgabe an PHP!'' Aber auch hier gibt es eine alternative Schreibweise des Befehls ''echo'': Die zweite Variante wird öfter verwendet, und sollte deswegen auch genutzt werden. Allerdings geht hierbei etwas verloren, dass auch ''echo'' eine Funktion ist, die aufgerufen wird. ===== Unterdrücken von Sonderzeichen ===== Einige Ausdrücke können in PHP gegebenenfalls anders interpretiert werden, als Du es vielleicht zur Zeit erwartest, wie das folgende Skript demonstriert. Dieses Skript wird nicht ausgeführt, da die Anführungszeichen um das Wort Variable als PHP-Syntax gedeutet werden. Außerdem wird $var nicht ausgegeben, denn dieser Begriff wird als Variable interpretiert. Um diese Fehlinterpretation zu verhindern, setzt du einen Backslash (''\'') vor die Sonderzeichen: **Ausgabe: **\\ ''$var ist eine "Variable".'' Allerdings gibt es auch eine Variante, welche es erlaubt, Anführungszeichen normal zu setzen und zwar ist es die Verwendung der einfachen Anführungszeichen: **Ausgabe: **\\ ''$var ist eine "Variable".''\\ Alle anderen Sonderzeichen müssen hierbei natürlich weiterhin mit dem Backslash ausmaskiert werden. ===== Blöcke und Strukturen ===== PHP-Skripte werden durch Kontrollstrukturen gesteuert. Im Wesentlichen sind das Schleifen und Bedingungen. Wie schon bei den PHP-Begrenzungen mit '''' im HTML-Gerüst müssen auch Strukturen in PHP begrenzt werden. Dazu verwendet man geschweifte Klammern:''{ PHP-Code }'' . Jede Struktur, die von geschweiften Klammern eingeschlossen wird, ergibt einen sogenannten Anweisungsblock. Auch dieser darf durch HTML unterbrochen werden: Das ist eine Bedingung mit if. Achte bitte darauf, dass der Block ordnungsgemäß durch eine geschweifte Klammer beendet wird. Anweisungsblöcke dürfen auch verschachtelt werden: Mehr zu ''if'' kannst du bei der [[php:conditions|Programmsteuerung]] finden. ===== PHP-Dateien einbinden ===== Soll ein PHP-Skript eine weitere Datei einbinden, bietet PHP die Anweisungen ''include'', ''require'', ''include_once'' und ''require_once''. Damit bist du in der Lage, Programmstrukturen auszulagern oder einfach Inhalte in deine Seite oder dein Skript zu integrieren. ==== Und jetzt nochmal ganz langsam ==== Programmcode, der mit ''include'' oder ''require'' eingebunden wird, verhält sich so, als würde er genau an dieser Stelle stehen. Steht ''include'' beispielsweise innerhalb einer Funktion, so besitzen Variablen in der eingebundenen Datei auch lokale Gültigkeit. Verwende ''include_once'' oder ''require_once'' an Stelle von ''include'' oder ''require'', um sicher zu stellen, dass der jeweilige Programmcode nur einmal eingebunden wird. Sonst meckert PHP, wenn dadurch etwa Variablen doppelt definiert werden. Bezüglich der Programmlogik verhalten sich ''include'' und ''require'' gleich. Sie unterscheiden sich lediglich in der Fehlerbehandlung. Tritt beim Einbinden mit ''include'' ein Fehler auf, so wird eine Warnung ausgegeben. Wenn du jedoch mit ''require'' so ein Problem hast, bedeutet dies, dass das Skript abgebrochen wird. \\ Auf der nächsten Seite geht es weiter mit der [[php:variables|Variablendefinition]].