Suchen
PHP-Funktionen
Wie ist ein PHP-Script aufgebaut?
Dieser Artikel soll zeigen, wie ein PHP-Script aufgebaut ist. Ich werde zunächst den syntaktischen Aufbau erläutern. Einen ersten kurzen Einblick in den Aufbau eines PHP-Scriptes habe ich im Artikel zur Beschreibung der Funktionsweise gegeben.
Darstellungsformen
PHP-Code kann problemlos mit einem beliebigen Markup gemischt werden, um eine entsprechende Darstellung im verwendeten Anzeigeprogramm zu ermöglichen. Das Markup ist in den meisten Fällen HTML oder eine HTML ähnliche Abwandlung von XML, nämlich XHTML. Das Anzeigeprogramm ist in den meisten Fällen ein Webbrowser. PHP kann, wie in vorherigen Artikeln bereits erwähnt, auch Bilder, PDF-Dateien und mit entsprechendem Wissen, auch jede andere Art von Dateiformat ausgeben. Dieser Artikel befasst sich mit der Ausgabe von XHTML-Dateien.Die Mischung machts
Um den Aufbau von PHP-Scripten besser erklären zu können, bediene ich mich des folgenden Beispiels:1 <?php 2 $title = 'Dies ist meine erste PHP-Datei!'; 3 ?> 4 <html> 5 <head> 6 <title><?php echo $title; ?></title> 7 </head> 8 <body> 9 <?php 10 $i = 3; 11 echo $i++ . ' und ' . ++$i . ' sind 8'; 12 ?> 13 </body> 14 </html>
In diesem Beispiel wird eine XHTML-Datei erzeugt. Der PHP-Code beschränkt sich auf die Initialisierung, Modifizierung und Verwendung von Variablen. Eine einzelne PHP-Anweisung wird dabei durch ein Semikolon getrennt. Theoretisch braucht nach der letzten Anweisung eines PHP-Codeblocks (die Bereiche zwischen <?php und ?>) kein Semikolon zu folgen. Um Fehlern vorzubeugen und der Übersicht wegen, wird es in den meisten Fällen dennoch verwendet.
Im ersten Codeblock wird die Variable mit dem Namen $title mit dem Wert "Dies ist meine erste PHP-Datei!" initialisiert. Strings bzw. Zeichenketten müssen entweder durch Anführungszeichen oder Hochkommas umschlossen werden. Der PHP-Interpreter macht allerdings einen Unterschied zwischen diesen beiden Zeichen. Wir kommen später dazu, worin genau dieser Unterschied liegt.
Im zweiten Codeblock wird die Variable $title zwischen den XHTML-Tags <title> und </title> eingefügt. Die Anweisung echo führt dazu, dass alles, was der Anweisung folgt, bis zum nächsten Semikolon, welches sich nicht innerhalb einer Zeichenkette befindet und auch kein Kommentar ist, ausgegeben wird.
Im dritten Codeblock wird die Variable $i mit dem Wert 3 initialisiert. In diesem Fall wird die Variable $i zu einer Zeichenkette, da weitere Teile folgen. Anschließend wird $i um 1 erhöht (hat also nun den Wert 5). Der Nachfolgende Punkt verbindet die Variable und die nachfolgende Zeichenkette miteinander. Anstelle des Punktes könnte in diesem Fall auch ein Komma verwendet werden. Nach der Ausgabe der Zeichenkette " und " wird die Variable $i zunächst wieder um 1 erhöht (hat also nun den Wert 5) und anschließend mit der Zeichenkette verbunden (diese lautet bis jetzt: "3 und 5"). Zum Schluss wird der Zeichenkette noch " sind 8" angehängt. Die Anweisung echo führt nun dazu, dass der Wert der erzeugten Zeichenkette der Ausgabe hinzugefügt wird.
Nachdem der PHP-Interpreter die Datei abgearbeitet hat, sieht sie folgendermaßen aus:
1 <html> 2 <head> 3 <title>Dies ist meine erste PHP-Datei!</title> 4 </head> 5 <body> 6 3 und 5 sind 8 7 </body> 8 </html>
Die erzeugte Ausgabe wird nun an den Benutzer bzw. Webbrowser gesendet und angezeigt. Der Benutzer sieht nicht, dass diese Seite dynamisch erzeugt wurde.
Funktionen
echo ist im Gegensatz zu print keine Funktion. Auch wenn echo und print sich per Definition unterscheiden, können sie im Prinzip gleichermaßen verwendet werden. Die folgenden Beispiele führen alle zum gleichen Ergebnis:1 $testvariable = 'Test'; 2 3 echo 'Dies ist ein ' . $testvariable; 4 echo 'Dies ist ein ' , $testvariable; 5 echo "Dies ist ein " . $testvariable; 6 echo "Dies ist ein " , $testvariable; 7 echo "Dies ist ein $testvariable"; 8 echo('Dies ist ein ' . $testvariable); 9 echo("Dies ist ein " . $testvariable); 10 echo("Dies ist ein $testvariable"); 11 print 'Dies ist ein ' . $testvariable; 12 print "Dies ist ein " . $testvariable; 13 print('Dies ist ein ' . $testvariable); 14 print("Dies ist ein " . $testvariable);
Ich persönlich bevorzuge die erste Schreibweise (Zeile 3). Am Beispiel in der 7ten Zeile kann man erkennen, dass Variablen auch innerhalb von Zeichenketten ausgewertet werden (dies funktioniert nur in Zeichenketten, welche durch Anfühungszeichen umschlossen werden). Ich persönlich mag diese Verwendung von Variablen nicht, dafür gibt es mehrere Gründe:
- Nicht jeder Syntaxhighlighter kommt mit dieser Schreibweise klar, Variablen werden deshalb nicht hervorgehoben.
- Wenn der Index eines Arrays angesprochen werden soll (dazu später mehr), funktioniert diese Schreibweise nicht mehr.
- Sie führt häufig zur leichtsinnigen Verwendung von Variablen, mehr dazu im Artikel zur richtigen Verwendung von Variablen.
Ein einfaches Beispiel:
1 // Ersetzen von "Apfel" durch "Keks": 2 echo str_replace('Apfel', 'Keks', 'Polly will einen Apfel'); 3 4 /* Die Funktion str_replace ersetzt alle Vorkommen des Wertes, des ersten 5 * Parameters, innerhalb der Zeichenkette, des dritten Parameters, durch den Wert 6 * des zweiten Parameters. 7 */
Kommentare
Im letzten Beispiel lässt sich sehr gut die Verwendung von Kommentaren erkennen. Einzeilige Kommentare werden durch die Zeichenfolge "//" oder durch das einzelne Zeichen "#" eingeleitet. Mehrzeilige Kommentare beginnen mit "/*" und enden mit "*/". Mehrzeilige Kommentare können nicht verschachtelt werden. Kommentare werden vom PHP-Interpreter gänzlich ignoriert bzw. vor der Interpretierung entfernt. Der erste Kommentar ist im übrigen ein Negativbeispiel. Kommentare sollten nie verwendet werden, um Sachverhalte, die dem versierten Programmierer ohnehin ersichtlich sind, nochmals zu erläutern. In diesem Fall liest sich der Kommentar und Funktionsaufruf identisch. Viel sinnvoller wäre beispielsweise eine Erläuterung, warum an dieser Stelle, diese Funktion aufgerufen wird. Der mehrzeilige Kommentar gehört in dieser Form normalerweise eher zur Funktionsdeklaration. Er wurde hier nur eingefügt, um zu verdeutlichen, was diese Funktion macht. Wenn in Zukunft Funktionen auftauchen sollten, dessen Bedeutung du nicht kennst, musst du selbst in der PHP-Dokumentation nachschlagen. Das geht ganz einfach:- Die offizielle Webseite von PHP aufrufen.
- In das Suchfeld oben rechts auf der Seite den gesuchten Funktionsnamen eintippen.
- Enter drücken oder auf den Pfeil neben der Suchbox klicken.
- Eventuell die Sprache der Beschreibung über die Verweise am Kopf der Seite umstellen.