Da es hier auch schon ein Tut für HTML gibt dacht ich mir, dass man das gleiche ja auch für PHP machen kann. Also:
Bemerkungen
Ich werde in diesem Tut manchmal Links als Fußnoten missbrauchen. Solche Links werden mit einem Gradzeichen (°) markiert. Fahrt über den Link, damit in der Statuszeile der Hinweis angezeigt wird, z.B.: Test°
Voraussetzungen:
Ich gehe davon aus, dass ihr euch etwas in HTML auskennt, eure Kenntnisse sollten vielleicht ein bisschen über dieses Tut hinausgehen.
Außerdem solltet ihr wissen, was eine Variable ist.
Zum Testen wäre ein PHP-Fähiger Webspace sinnvoll. PHP-Freewebspace wird u.a. von Lycos Tripod angeboten.
Was ist PHP?
PHP ist im Prinzip nichts anderes als eine Scriptsprache, um HTML-Seiten zu erstellen. Eine Seite mit der Endung .php wird vom Server interpretiert, bevor sie zum Browser gesendet wird, der Browser kriegt also gar nicht mit, dass es sich um eine php-Seite handelt.
Erste Schritte
Eine Seite, die in PHP geschrieben ist, ist sehr ähnlich zu einer HTML-Seite aufgebaut, hat aber die Endung *.php. Der Server interpretiert nur das, was in <?php ?>-Tags steht. Der Rest wird vollkommen unverändert übernommen. Also:Innerhalb der PHP-Tags kann Text ausgegeben werden, indem manschreibt.
In diesem Beispiel würde
Hallo Welt!
ausgegben werden.
Man kann also auch normale HTML-Tags ausgeben, die dann vom Browser ausgewertet werden.
Zwischen zwei <?php ?> kann ganz normaler HTML-Code geschrieben werden. Der PHP-Code wird in diesem Fall an der Stelle fortgesetzt, an der er unterbrochen wurde.
PHP-Kommandos
Jeder PHP-Befehl endet mit einem Semikolon, was wohl C-Programmierern bekannt vorkommen wird (Das meiste in PHP ist ählich zu C). Wichtig ist nur, dass nicht das Zeilenende den Befehl abschließt, sondern das Semikolon. Ein Befehl kann also über mehrere Zeilen gehen, es können aber auch zwei Befehle in einer Zeile vorkommen.
Ein Befehl kann entweder ein Funktionsaufruf, eine Variablenzuweisung oder eine Mischung aus beidem sein. Eine wichtige eingebaute Funktion ist z.B. print(). Die Syntax eines Funktionsaufrufes schaut so aus:
[FONT=courier new]funktionsname(Parameter1 [, Parameter2 [, Parameter3 [, ...]]]);[/font]
Die print()-Funktion nimmt nur einen Parameter an, nämlich den String, der ausgegeben werden soll (Strings sind Zeichenketten und werden in Anführungszeichen ("") angegeben, damit PHP auch weiß, dass es sich um einen String handelt. Dazu aber später).
Befehle werden von oben nach unten durchgearbeitet.
Variablen
In PHP sind alle Variablen Variants, d. h. sie können Ganze Zahlen, Floating-Point-Zahlen oder Zeichenketten sein.
Variablen müssen nicht definiert werden, wenn ein noch nicht verwendeter Variablenname im Quelltext auftaucht wird eine neue Variable dieses Namens erstellt und ihr der Wert 0 bzw. ""° zugewiesen.
Variablennamen müssen mit dem $-Zeichen beginnen und dürfen Groß-und Kleinbuchstaben sowie den Unterstrich (_) enthalten.
Variablen sind z.B.
[font="courier new"]$foo
$test123
$dummheit_MAX[/font]
keine Variablen sind:
[FONT=courier new]test //° diese Variable fängt nicht mit $ an.
$asdf äölk //Diese Variable enthält ein Leerzeichen.
$#*@! //Diese Variable enthält Sonderzeichen[/font]
Variablen in PHP sin case sensitive, d. h. dass die GOSS/kleinschreibung eine Rolle spielt.
[FONT=courier new]$hallo[/font] ist also etwas anderen als [FONT=courier new]$Hallo[/font], [FONT=courier new]$HALLO[/font] oder [FONT=courier new]$hAlLo[/font].
Um einer Variable einen Wert zuzuweisen kann der =-Operator° verwendet werden:
[FONT=courier new]$foo = 27;[/font]
oder
[FONT=courier new]$zeug = 234.123432;[/font]
oder
[FONT=courier new]$text = "Hallo";[/font]
Man kann auch sehr leicht mit Variablen rechnen:
[FONT=courier new]$baz = 27-15;[/font]
In diesem Fall erhält die Variable $baz den Wert 13.
[FONT=courier new]$test = $foo * 2;[/font]
Schon etwas komplizierter. In diesem Fall erhält $test den doppelten Wert von $foo.
Man kann in PHP die Operatoren +,-,*,/ und %° verwenden.
Es ist zu beachten, dass die Regel Punkt vor Strich gilt,
[FONT=courier new]$foo = 2+2*3;[/font]
weist $foo also 8 zu, nicht 12. Um $foo den Wert 12 zuzuweisen kann man Klammern verwenden:
[FONT=courier new]$foo = (2+2)*3;[/font]
Es gibt noch eine Reihe besonderer Operatoren:
[FONT=courier new]$foo++; //Erhöht den Wert von $foo um 1, entspricht also $foo = $foo + 1;.
$foo--; //Verringert den Wert von $foo um 1.
$foo += 5; //Erhöht den Wert von $foo um 5, entspricht also $foo = $foo + 5;.
$foo -= 7; //Verringert den Wert von $foo um 7.
$foo *= 9; //Entspricht $foo = $foo * 9;.
$foo /= 6; //Entspricht $foo = $foo / 6;.
$foo %= 4; //Entspricht $foo = $foo % 4;.[/font]
Diese Kürzel ersparen einem einen Haufen Tipparbeit.
Diese Kürzel kann man auch mitten in Ausdrücken° verwenden.
[FONT=courier new]$baz = 7;
$foo = ($baz += 3) + 10;[/font]
weist $baz den Wert 10 und $foo den Wert 20 zu.
Teste, ob du alles verstanden hast
Was gibt dieser Code aus?
Operationen mit Zeichenketten
Wie schon im lezten Abschnitt angesprochen kann eine Variable auch Strings° annehmen. In PHP gibt es zwei Möglichkeiten, Strings einzusetzen. Man kann sie entweder in einfache ('') oder in doppelte ("") Anführungszeichen setzen. Um in einfachen Zeichenketten das ' anzuzeigen muss ein Backslash (\) davor gesetzt werden, also z.B. 'Bei \'Donaudampfschiffahrtelektromechanikerausbildungszentren\' handelt es sich um ein langes Wort.'.
Wenn der Backslash selber dargestellt werden soll muss folgendes geschrieben werden: 'c:\\ ist unter Windows die erste Festplatte'.
Die Möglichkeit, die doppelten Anführungszeichen zu benutzen sollte man nur wählen, wenn man einen Zeilenumbruch einfügen will: "1. Zeile\n2.Zeile". \n markiert hier den Zeilenumbruch. Bei dieser Methode muss " durch \", \ durch \\ und $ durch \$ ersetzt werden.
Man sollte nach Möglichkeit immer die einfachen Anführungszeichen verwenden, da diese sehr viel schneller verarbeitet werden als die doppelten.
Strings können auch aneinandergehängt werden, indem man sie durch Punkte trennt:
[FONT=courier new]$string1 = $string2 . $string3;[/font]
Man kann auch Zahlen mit Strings verketten:
[FONT=courier new]$ausgabetext = 'Die Summe von 5 und 4 ist ' . (5 + 4) . '.';[/font]
Man beachte das Leerzeichen zwischen "ist" und "'". Es dient dazu, dass die 9 nicht direkt an das "ist" drangeklebt wird.
Der Inhalt von $ausgabetext lautet dann "Die Summe von 5 und 4 ist 9.".
Man kann auch schreiben:
[FONT=courier new]print('Die Summe von 5 und 4 ist ' . (5 + 4) . '.');[/font]
Auf diese Weise wird der Text direkt ausgegeben, ohne erst in einer Variable gespeichert zu werden:
Die Summe von 5 und 4 ist 9.
Codestrukturen
Bisher wurde unser PHP-Code immer so geschrieben, dass er von oben nach unten komplett durchgefürt wurde. Das ist aber in den meisten Fällen nicht das Ziel, z.B, wenn ein Username geprüft werden soll. Deshalb bietet PHP mehrere Möglichkeiten, den Ablauf des Codes zu beeinflussen:
a)Abbrechen des Programmlaufs
Wenn der Programmlauf an einer bestimmten Stelle abgebrochen werden soll kann dieser Befehl verwendet werden:
[FONT=courier new]return;[/font]
Alles, was nach diesem Befehl kommt wird ignoriert, auch HTML-Code. Es sollte sichergestellt werden, dass sämtliche HTML-Tags geschlossen werden, bevor dieser Befehl aufgerufen wird, da sonst eine fehlerhafte Seite entstehen kann.
b)Die if-Abfrage
eine If-Abfrage kontrolliert, ob eine bestimmte Bedingung erfüllt ist.Beachte, dass hinter der 2. Zeile kein Semikolon° ist. If ist auch kein Befehl, sondern eine Abfrage.
Der print-Befehl in der 3. Zeile wird nur ausgeführt, falls $alter > 99 ist.
Außer dem >°-Zeichen gibt es noch:
[FONT=courier new]< : Kleiner als
<=: Kleiner oder gleich
>=: Größer oder gleich
==: Gleich (Vorsicht! immmer == schreiben, da sonst dem linken Wert der rechte zugewiesen wird)
!=: ungleich[/font]
Zudem gibt es noch den !- oder Nicht-Operator.
[FONT=courier new]!($x > $y) entspricht ($x <= $y)[/font]
Im oben genannten Code wird nur eine Codezeile von der Bedingung abhängig gemacht. Was aber, wenn mehrere Zeilen ausgeführt werden sollen. Was aber, wenn mehr als ein Befehl von der Bedingung abhängig gemacht werden soll? Natürlich könnte man schreiben:Das hätte aber viele Nachteile:
Es wäre viel Schreibarbeit
Es wäre extrem unübersichtlich
Es würde mehr Rechenleistung vom Server verbrauchen als nötig
Was wäre, wenn sich $alter wärend des Programmlaufs ändern würde?
Deshalb gibt es die Möglichkeit, eine Folge von Befehlen in geschweifte Klammern ({}) zu schreiben, sodass sie wie ein Befehl behandelt werden:Es gibt auch die Möglichkeit anzugeben, was passieren soll, wenn die Bedingung nicht erfüllt ist:Der Block nach dem else wird nur ausgeführt, falls die Bedingung nicht zutrifft.
c)Schleifen mit while
Falls ein bestimmter Code mehrfach ausgeführt werden soll kann man eine while-Schleife verwenden:Diese Schleife wird so lange durchgeführt wie $x kleiner als 5 ist, also in diesem Fall 5 mal:
$x = 0, die Bedingung ($x < 5) ist erfüllt. 0 wird ausgegeben und $x wird auf 1 erhöht.
$x = 1, die Bedingung ($x < 5) ist erfüllt. 1 wird ausgegeben und $x wird auf 2 erhöht.
$x = 2, die Bedingung ($x < 5) ist erfüllt. 2 wird ausgegeben und $x wird auf 3 erhöht.
$x = 3, die Bedingung ($x < 5) ist erfüllt. 3 wird ausgegeben und $x wird auf 4 erhöht.
$x = 4, die Bedingung ($x < 5) ist erfüllt. 4 wird ausgegeben und $x wird auf 5 erhöht.
--. $x = 5, die Bedingung ($x < 5) ist nicht erfüllt. Die Schleife wird verlassen.
Eine Variante dieser Schleife istDer einzige Unterschied besteht darin, dass die erste Schleife 0 oder meherere Male durchgeführt wird und diese mindestens einmal.
d)for-Schleifen
For-Schleifen sind im Prinzip umgeformte while-Schleifen.[php]<?php
for($x = 0; x < 5; x++)
print($x);
?>ist das gleiche wieGrundsätzlich gilt also:
[FONT=courier new]for(/*Aktion vor der Schleife*/; /*Bedingung für den erneuten Durchlauf*/; /*Aktion nach jedem Durchlauf*/)
//Befehl(e)
//Kommentare können auch innerhalb einer Zeile stehen, wenn sie zwischen /* und */ stehen.[/font]
Das wars vorerst. Edits werden folgen, ich werde in nächster Zeit mindestens noch folgende Themen hinzufügen:
Funktionen
Auswertung von Formularen
Schreiben/Lesen in/aus Dateien
Tipps und Tricks
Eigenes Gästebuch in PHP
Wichtige/interessante Funktionen
Andere Wünsche, Vorschläge und Kritik sind selbstverständlich willkommen.
Mach das weg. Wenn du kein WAHRES Copyright hast, könntest du angezeigt werden. Bei mir war es so
Für Copyrights musst du Geld bezahlen - viele wissen das nicht -
Original geschrieben von Remos Progrannieren?
Soll der opa seine Nieren neu programmieren oder woran hast du daran gedacht
Wen nicht verat mir mal was Progrannieren ist