Abschnitt 1 · Lektion 1
Was ist PHP?
Im HTML-Kurs hast du Seiten geschrieben und im Browser geöffnet. Was du in die Datei getippt hast, stand hinterher genau so auf dem Bildschirm. Die Datei war das Ergebnis.
Bei PHP ist die Datei nicht das Ergebnis, sondern der Weg dorthin.
Eine Datei, die fertig ist, und eine, die entsteht
Stell dir einen Server vor als einen Rechner, auf dem deine Dateien liegen und der sie herausgibt, wenn jemand danach fragt. Bei einer HTML-Datei ist das ein kurzer Vorgang: Er sucht die Datei, schickt sie los, fertig. Er liest sie nicht einmal, er reicht sie durch.
<h1>Guten Tag!</h1>
<p>Schön, dass du da bist.</p> Diese zwei Zeilen sehen bei jedem Besucher gleich aus, heute wie in einem Jahr. Wenn du etwas ändern willst, öffnest du die Datei und tippst.
Eine PHP-Datei behandelt der Server anders. Er reicht sie nicht durch, er führt sie aus. Er liest sie von oben nach unten wie ein Rezept, macht, was darin steht, und schickt erst das Ergebnis los.
<?php
$gruss = "Guten Tag";
$name = "Mia";
echo "<h1>$gruss, $name!</h1>\n";
echo "<p>Schön, dass du da bist.</p>\n"; Starte die Sandbox. Im Reiter Browser erscheint eine Seite, und zwar dieselbe wie im ersten Beispiel: eine Überschrift, darunter ein Satz. Der Weg dorthin ist ein völlig anderer.
Im ersten Beispiel lag die Seite fertig da. Hier gab es sie eine Sekunde vorher noch nicht. Sie ist
aus Teilen entstanden, während das Programm lief: $gruss und $name sind Namen für Werte, echo
gibt etwas aus. Beides bekommt in Abschnitt 2 seine eigene Lektion, hier geht es nur um das Prinzip.
Dazwischen liegt eine Zwischenstufe, die es beim ersten Beispiel gar nicht gibt, und du kannst sie
dir ansehen. Tipp php index.php im Terminal: Da steht der Text, den dein Programm geschrieben
hat, Zeichen für Zeichen und mit allen spitzen Klammern. Das ist es, was der Server losschickt. Erst
der Browser macht daraus eine Überschrift.
Ändere ruhig den Namen im Code. Die Seite zieht von selbst nach.
Was der Besucher davon sieht
Nämlich nichts. Und das ist die wichtigste praktische Folge des ganzen Kurses.
Im HTML-Kurs war jede Zeile öffentlich. Rechtsklick, Quelltext anzeigen, und alles stand da. Wer schon JavaScript im Browser geschrieben hat, kennt dieselbe Regel von dort: kein Passwort im Code, kein Zugangsschlüssel, keine Datenbankadresse. Was der Browser bekommt, kann jeder lesen.
Dein PHP-Code liegt dagegen auf dem Server und geht nie an den Besucher raus. Der bekommt nur, was dein Programm ausgegeben hat. Damit dürfen hier Dinge stehen, die vorher nirgends stehen durften: Zugangsdaten zur Datenbank, der Einkaufspreis hinter einem Rabatt, die Prüfung, ob jemand eingeloggt ist. Das ist der Grund, warum eine Anmeldung ohne Server nicht ehrlich zu bauen ist.
Und damit trägst du eine Verantwortung, die du vorher nicht hattest. Ein Fehler in einer HTML-Datei sieht falsch aus. Ein Fehler in Servercode gibt unter Umständen Daten preis, die dir gar nicht gehören. Abschnitt 15 nimmt sich das ausführlich vor, aber der Gedanke fängt hier an.
Bei jedem Aufruf etwas anderes
Weil das Programm bei jedem Aufruf neu läuft, kann jedes Mal etwas anderes herauskommen.
<?php
$wuerfel = random_int(1, 6);
echo "<h1>Würfelwurf</h1>\n";
echo "<p>Du hast eine $wuerfel gewürfelt.</p>\n"; Drück ein paarmal auf Seite neu laden über der Seite. Sie ist jedes Mal eine andere, obwohl du nichts geändert hast. Eine HTML-Datei kann das nicht, dafür müsstest du sie jedes Mal neu schreiben.
Genau darum geht es, wenn jemand sagt, eine Seite werde „dynamisch erzeugt”. Es klingt größer, als es ist: Ein Programm läuft, und was dabei herauskommt, hängt davon ab, was es gerade vorfindet.
Aus derselben Fähigkeit kommt alles Weitere: eine Liste, die zeigt, was gerade in der Datenbank steht. Eine Seite, die deinen Namen kennt, weil du angemeldet bist. Ein Formular, das antwortet statt nur dazustehen.
Zwei Orte, an denen PHP läuft
Im Kurs begegnen dir beide.
Bis Abschnitt 9 arbeitest du auf der Kommandozeile. Du startest eine Datei, sie läuft, sie gibt etwas aus, sie ist fertig. Keine Seite, kein Browser, kein Besucher. Das klingt nach Umweg und ist der schnellste Weg, die Sprache zu lernen: Du siehst sofort, was passiert, ohne dass ein halbes Dutzend anderer Dinge mitspielt.
Ab Abschnitt 10 kommt der Webserver dazu. Dann ist es keine Datei mehr, die du startest, sondern eine Adresse, die jemand aufruft. Der Code ist derselbe, nur der Anlass ist ein anderer.
Die häufigste Verwechslung
PHP ist keine Erweiterung von HTML. Es sieht manchmal so aus, weil beides in derselben Datei stehen darf und PHP am Ende HTML ausgibt. Aber es ist eine eigene Sprache mit einem eigenen Programm, das sie ausführt, und sie könnte genauso gut etwas ganz anderes ausgeben: eine Textdatei, eine Zahl, eine E-Mail.
Der Vergleich, der am besten passt: Der Browser ist das Programm, das eine HTML-Datei öffnet. PHP ist das Programm, das eine PHP-Datei ausführt. Zwei Programme, zwei Aufgaben, und HTML ist nur eine der Formen, die dabei herauskommen können.
In der nächsten Lektion startest du deine erste eigene Datei.
Zum Mitnehmen
Eine HTML-Datei liegt fertig auf der Festplatte. Eine PHP-Datei ist eine Bauanleitung, und der Server führt sie erst aus, wenn jemand die Seite aufruft.
Jetzt du
Basis Konto, kostenlosIm Editor änderst du die Beispiele dieser Lektion und lässt sie gleich laufen. So merkst du am schnellsten, ob es sitzt.
Dafür brauchst du das Basis Konto. Es kostet nichts, und ein Passwort gibt es auch nicht.
In diesem Kurs läuft dein Code auf einem Server. Dafür hat das Basis Konto 1 Stunde im Monat, mehr Zeit gibt es mit dem Premium Konto.
Was in dieser Lektion steckt
-
Artikel mit 3 Beispielen zum Ausprobieren
Steht hier, ohne Konto lesbar.