Benutzer:Thomas131/phptut

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Programme[Bearbeiten]

Wenn man PHP-Programmieren möchte braucht man einen Texteditor:

Außerdem braucht man noch:

oder

Konsolen-Version[Bearbeiten]

Konsolen-Fans können auch oder am Besten zusätzlich eine Konsolen-Version installieren (Linux (Redirekt auf APTURL), Windows-installations-Anleitung (englisch)). Nicht-Konsolenfans können diesen Schritt überspringen.

Ausgaben[Bearbeiten]

Hello World-Beispiel[Bearbeiten]

Es wird davon ausgeangen, dass ihr auf dem lokalen Webserver oder auf der Webspace schon statische Webseiten erstellen könnt. Ob nun zu prüfen, ob auch wirklich alles funktioniert, erstellt ihr am Besten eine Datei mit dem Inhalt:

<?php
echo "Hello World";
?>

Es müsste eine Seite dem Inhalt Hello World kommen. Die erste Zeile gibt an, dass hier der PHP-Code beginnt. Echo sagt, dass das folgende ausgegeben wird. Die Anführungszeichen sagen, dass die eingeschlossene Zeichenkette ausgegeben wird. Einfache Anführungszeichen gehen in den meisten Fällen auch. Auf den Unterschied wird später eingegangen. Der Punktstrich beendet die Anweisung (in diese Fall die Ausgabe). Statt echo kann man übrigens auch print schreiben. Außerdem kamm man auch Klammern verwenden:

<?php
echo("Hello World");
//bzw.
print("Hello World");
//bzw.
echo('Hello World');
//bzw.
print('Hello World');
?>

Am meisten wird echo ohne Klammern verwendet. Die zwei // deuten auf ein Kommentar hin. Dieser Teil wird von PHP einfach überlesen. Man kann Kommentare auch noch anders schreiben: /*Kommentar*/ wobei dann auch mehrzeilige Kommentare gehen. Der ganze Code wird beim Server in reinen Text umgewandelt (der PC bekommt vom ursprünglichen Code gar nichts mit). Wenn man das ganze als HTML-Code anzeigen will muss man es ein bisschen mehr Code schreiben. Es gibt verschiedene Schreibweisen:

<!DOCTYPE html>
<html>
<head></head>
<body>
<?php
echo "Hello World";
?>
</body>
</html>

Man kann PHP-Code also einfach in den HTML-Code einfügen. Es geht allerdings auch.

<?php
echo "<!DOCTYPE html>";
echo "<html>\n";
echo "<head></head>\n";
echo "<body>\n";
echo "Hello World\n";
echo "</body>\n";
echo "</html>";
?>

Das \n steht für einen neue Zeile. Das alles bewirkt nur einen Zeilenumbruch im Code. Wenn man eine wirklich neue Zeile schreiben will, muss man das wie bei HTML machen:<br> Der HTML-Code sieht also so aus:

<html>
<head></head>
<body>
Hello World
</body>
</html>

Natürlich kann man das Ganze auch kürzer schreiben:

<?php
echo "<html>\n<head></head>\n<body>\nHello World\n</body>\n</html>";
?>

Allerdings ist das sehr unübersichtlich. Eine andere Variante währe noch:

<?php
echo <<<END
<html>
<head></head>
<body>
Hello World
</body>
</html>
END;
?>

Der Begriff, der in der 2. Zeile am Anfang verwendet wurde, muss am Schluss mit einem Punktstrich hinten auch verwendet werden, um den Text zu beenden. Wichtig ist, dass der Begriff vollkommen groß geschrieben wird. Es gibt auch eine Variante für einfache Anführungszeichen. Da muss das erste END in einfache Anführungszeichen geschreiben werden.

Zeichen maskieren[Bearbeiten]

Jetzt wollen wir einmal Z:\ ausgeben.

<?php
echo "Z:\daten";
?>

gibt leider eine Fehlermeldung aus. Das \ sagt, dass er dem nächsten Zeichen die spezielle Bedeutung nehmen soll und es halt einfach nur ausgeben soll (=maskieren). So währe es auch möglich, doppelte Anführungszeichen auszugeben:

<?php
echo "\"";
?>

Wenn wir nun das vorherige Beispiel fehlerfrei ausgeben wollen, müssen wir das \ noch einmal maskieren:

<?php
echo "Z:\\daten"; //Gibt Z:\daten aus
?>

if-Abfragen[Bearbeiten]

Was ist, wenn wir einen Text nur unter einer gewissen Bedingung ausführen wollen? z.B.

<?php
if(5 > 3) {
    echo "5 ist größer als 3!";     //Das wird nur ausgeführt, wenn die Bedingung in den runden Klammern wahr (true) ist
}
?>

Das in der Klammer ist die Bedinung. Nur, wenn sie wahr ist, wird das in den geschwungenen Klammern ausgeführt. Wenn nur ein Befehl in den geschwungenen Klammern steht (wie hier), kann man die Klammern auch weglassen.

Jetzt wollen wir auch noch etwas ausgeben, wenn die Bedinung nicht eintritt. Wir könnten natürlich eine 2. if-Abfrage machen - oder wir verwenden else:

<?php
if(5 > 3)                                         //Diesmal die Variante ohne geschweifte Klammern
    echo "5 ist größer als 3!";                   //Das wird nur ausgeführt, wenn die Bedingung in den runden Klammern wahr (true) ist
else
    echo "5 ist kleiner oder gleich groß als 3!"  //Das wird nur ausgeführt, wenn die Bedingung in den runden Klammern falsch (false) ist
?>

@TODO:elseif, switch, &&, ||, XOR, !, if(true), if(false), if-Abfragen innereinander, Klammern in den Bedinungen, Bedinungen negieren (De Morgansches Gesetz)