PHP Syntax

0 | 5744 Aufrufe
Sie können diese Wikiseite nach der Anmeldung auf Webmasterpro bearbeiten. Helfen Sie mit und verbessern Sie "PHP Syntax" mit Ihrem Wissen!

Anzeige Hier werben

Einleitung

Um den Grundsatz einer Syntax zu verstehen hilft es ungemein, die Bedeutung von "Programmiersprache" zu verstehen. Das Wort "Sprache" beim programmieren wurde aus dem Grund gewählt, da es sehr viele Ähnlichkeiten mit der menschlichen Sprache gibt. Das trifft vor allem auf das Geschriebene zu. Wir Menschen führen einen Dialog, den man beim Programmieren auch mit dem Computer führt. Es gibt die Rechtschreibung sowie die Grammatik. Es gibt Ausdrücke, Fragen, Antworten und noch vieles mehr. Es gibt aber genau zwei Unterschiede, die man niemals vergessen sollte. Zum einen verzeiht der Computer keine Fehler und zum anderen ist er berechenbar.

Die Syntax bildet also etwas in der Programmiersprache ab, was in den menschlichen Sprachen als Grammatik bezeichnet wird. Diese Grammatik ist für die Interpreter/Compiler in der Programmierung unfassbar wichtig, da es den verwertenden Programmen ermöglicht, den Code besser in seine Bestandteile zu zerlegen. Für uns Programmierer ist die Syntax zudem ein gutes Mittel, die Übersicht über den Code zu behalten.

Die PHP Syntax ähnelt recht stark der Syntax von C oder Java. Die Unterschiede liegen vor allem im begrenzten Sprachumfang oder der einen oder anderen Designentscheidung.

Bezeichner

Die wichtigsten Regeln der Syntax werden einem bereits schon sehr schnell klar. Bezeichner haben gewisse Regeln zu befolgen, wenn diese als solche erkannt werden wollen.

 
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// Eine Variable beginnt immer mit dem $ Zeichen
$variable;

// Eine Funktion wird ohne Vorzeichen verwendet, muss aber mit einem Satz
// runder Klammern abgeschlossen werden. Diese können Parameter enthalten.
getdate();

// Konstanten sind ebenfalls vorzeichenlos, benötigen keine Nachzeichen, können
// aber auch nur durch eine Funktion erzeugt werden.
TIMESTAMP_REFRENCE

Bezeichner sind grundsätzlich CASE SENSITIVE (es wird zwischen Groß und kleinschreibung unterschieden). Eine Ausnahme besteht allerdings bei Konstanten. Diese werden durch das setzen des Parameters case_insensitive mit dem Wert (bool) true beim erzeugen der Konstante mit define insensitiv geschaltet.

Bezeichner dürfen grundsätzlich nur mit einem Buchstaben (a-z, A-Z, äÄüÜöÖ) oder dem Unsterstrich beginnen. Ziffern dürfen erst ab der zweiten Stelle verwendet werden. Bis auf den Unterstrich "_" und dem Bindestrich "-" sind keine weiteren Sonderzeichen oder Leerzeichen erlaubt.

Anweisungen

Anweisungen sind im Grunde die ausführende Einheit des Codes. In Anweisungen wird direkt mit dem Computer kommuniziert. Aber auch diese Anweisungen haben einem speziellen Muster zu folgen. So sind klassische Anweisungen aufgebaut:

[WERT|FUNKTION]; // z.B. Initialisieren einer Variable

[WERT|FUNKTION][OPERATOR][WERT|FUNKTION]; // z.B. Wertzuweisungen

Jede Anweisung wird mit einem Semikolon abgeschlossen. Bis auf wenige Ausnahmen darf am Ende der Anweisung kein Operator stehen und die Anweisung darf auch nicht mit einem Operator beginnen.

 
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// Gültige Anweisung: Variable ohne Wert erzeugen
$test;

// Ungültige Anweisung: Semikolon fehlt
$test

// Gültige Anweisung: Zuweisung durch Operator
$test = 1;

// Ungültige Anweisung: Weiterer Operator vorhanden, aber Operand fehlt
$test = 1 +;

Als Ausnahme für einen Abschließenden Operator zählen die In- und Dekrement-Operatoren. Diese dürfen auch am Ende einer Anweisung stehen.

Codeblöcke

Mit Codeblöcken werden Anweisungen eingeschlosse, um diese dann bestimmten Situationen zu zuweisen (z.B. erfüllten Bedingungen). Der Block wird mit Hilfe von geschweiften Klammern realisiert.

 
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
// Beispiel einer Funktion
// Hier wird der Block ausgeführt, sobald die Funktion test() aufgerufen wird.
// Ansonsten wird er ignoriert.
function test() {
    echo "Hallo";
}

// Beispiel einer Fallunterscheidung (Bedingung)
// Hier wird der Block ausgeführt, sobald die die Bedingung wahr ist.
// Ansonsten wird er ignoriert.
if($i == 1) {
    echo "Hallo";
}

// Beispiel einer Schleife
// Hier wird der Block so lange wiederholt, bis eine Bedingung erfüllt bzw. nicht
// mehr erfüllt ist. Ansonsten wird er ignoriert.
while($i == 1) {
    echo "Hallo";
}

Die geschweiften Klammern werden auch beim Zuweisen mehrerer Werte für Arrays verwendet. Arrays erwarten grundsätzlich strukturierte Daten, dessen Strukturen in Codeblöcken eingefasst sind.

Beziehungen für Codeblöcke

Egal ob Fallunterscheidungen oder Schleifen. Codeblöcke müssen grundsätzlich dann verwendet werden, wenn mehrere Anweisungen steuerungsabhängig ausgeführt werden müssen. Ohne einen entsprechenden Block ist PHP nicht mehr in der Lage, den Anfang und das Ende der Anweisungen zu definieren, die steuerungsabhängig ausgeführt müss. PHP aktzeptiert daher nur die erste Anweisung nach einer Steuerung. Alle weiteren werden ignoriert und gehören somit zum steuerungsunabhängigen Hauptcode.

Bei einigen Kontrollmechanismen gibt es bei der Syntax auch Alternativen. Da diese aber nicht für jeden Mechanismus gültig sind, werden sie so gut wie nie angewendet und sind eher verpöhnt. Es wird aber trotzdem im Anschluss darauf eingegangen.

 
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
// Gültig: If mit einzelner Anweisung
if($test) echo $test;
// Oder
if($test)
    echo $test;
// Oder mit else
if($test)
    echo $test;
else
    echo "Fehler";

// Ungültig: Zweites echo ist hier steuerungsunabhängig und wird immer ausgegeben
if($test)
    echo $test;
    echo "Ich stehe hier komischerweise immer!";

// Gültig: Zweites echo ist nun steuerungsabhängig und wird nur bei zutreffender Bedingung ausgegeben
if($test) {
    echo $test;
    echo "Ich stehe hier komischerweise immer!";
}

Bei einigen Kontrollmechanismen ist es tatsächlich möglich, auch eine BASIC-ähnliche Syntax anzuwenden. Dies gehört aber nicht zum guten Ton, da es nicht für alle Mechanismen gilt. Zum Beispiel die ForEach- oder Do-While-Schleife unterstützen dies nicht. Hier mal Beispiele für die BASIC-Syntax in PHP:

 
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// Fallunterscheidung
if($bedingung):
    echo $anweisung;
else:
    echo $anweisung2;
endif

// For-Schleife
for($i = 0; $i <= 10; $i++):
    echo $i;
endfor;

TRIVIA: Die alternative BASIC-Syntax gilt grundsätzlich für fast alle Kontrollmechanischen, bei denen die Bedingungen direkt nach dem einleitenden Schlüsselwort geprüft werden. Die einzige mir gerade bekannte Ausnahme hier wäre ForEach.

Kommentare

Kommentare sind Informationen, die vom Interpreter ignoriert werden und nur dazu da sind, Funktionsweisen innerhalb des Codes zu dokumentieren. Damit dies dem Interpreter gelingt, müssen die Textzeilen, die meist in menschlicher Sprache vorliegen, speziell maskiert werden. Einzeilige Kommentare werden daher mit zwei Schrägstrichen ("//" engl: slash) eingeleitet und können sogar hinter einer Anweisung positioniert werden. Die zweite Möglichkeit sind Kommentarblöcke. Diese gehen über mehrere Zeilen und benötigen dafür Zeichen zur Einleitung und zur Ausleitung. Zur Einleitung wird dazu /* verwendet und zur Ausleitung */.

 
PHP
1
2
3
4
5
6
7
8
// Ein einzeiliger Kommentar
// Noch einer
$php = "cool"; // hier noch einmal hinter einer Anweisung

/* Das ganze ist auch
mehrzeilig möglich und
erspart das tippen ständiger
doppelter Schrägstriche */

Schlusswort

Ich hoffe, das ich alle soweit wichtigen Syntaxregeln hier angesprochen habe und hoffe, das dies hilfreich für den einen oder anderen ist.


Wikiseite bearbeiten

Diese Seite kann von jedem registrierten Benutzer bearbeitet werden. Bisher haben 2 Personen an der Seite "PHP Syntax" mitgewirkt.

Sie haben einen Fehler entdeckt oder möchten etwas ergänzen? Dann können Sie nach der Anmeldung "PHP Syntax" hier bearbeiten.

Mitarbeiter
  • hat keine Beschreibung angegeben. Eine Beschreibung kann man unter dem Punkt "Profil bearbeiten" im Kontrollzentrum eintragen.
  • Projektarbeit im Bereich HTML 5, CSS 3, Javascript / jQuery von AnuVi.