Die erste PHP-Lektion

tempa wrote this 00:06:

PHP Tutorials langweilen ihre Leser in der Regel mit den ewig gleichen Beispielen, die in der echten Welt nur selten Sinn machen. Angefangen mit folgender PHP Anweisung:

  1. <?php echo "Hallo Welt"; ?>

Beginnen wir mit der Frage „Was ist PHP?“ bevor wir auf die Anweisung näher eingehen. PHP stand ursprünglich für „Personal Home Page Tools“ und heutzutage für „PHP: Hypertext Preprocessor“. Für alle die mit Hypertext nichts anfangen können. Hypertext im Internet ist die beschreibende Sprache, die der Maschine erklärt, wo in der Hirarchie der Text steht, bzw. welche Aufgabe der Text erfüllt. Hypertext gibt z.B. an, ob es sich um eine Überschrift, eine Liste oder einen gewöhnlichen Absatz handelt. Mit Hypertext kann ein Text von einem Marker, wie dem Blockelement „<div>“ oder dem Inline-Element „<strong>„, umschlossen werden und dergestalt können Inhalte zusammengefasst und sowohl semantisch wie optisch hervorgehoben werden.

PHP wird serverseitig ausgeführt. Damit der Prozessor erkennt, dass es sich um eine PHP-Anweisung/~Funktion handelt muss diese mit spitzen Klammern und Fragezeichen (<? … ?>) umschlossen sein und in einer Datei mit einer Endung, die der Server als PHP-Datei identifiziert (standardmäßig aber nicht zwingend *.php). Es zeugt von einem besseren Stil, der öffnenden PHP-Klammer ein php nachzustellen um jede Verwechslung mit der XML-Deklaration auszuschließen, wobei jedoch innerhalb einer PHP-Datei grundsätzlich PHP ausgeführt wird und die XML-Deklaration zu einer Fehlermeldung führt, wenn diese direkt und nicht via echo '<?xml version="1.1" encoding="iso-8859-1"?>'; ausgegeben wird.

Bei dem Beispiel echo "Hallo Welt"; handelt es sich um eine Ausgabe eines Textes (String gekennzeichnet durch doppelte oder einfache Anführungszeichen). Es mangelt dem Beispiel am Hypertext. Das Beispiel könnte auch wie folgt aussehen. echo "<p>Hallo Welt</p>";, also mit Hypertext innerhalb der PHP-Anweisung. PHP-Puristen Hypertext innerhalb statt außerhalb der PHP-Anweisung sogar als das bessere Script bezeichnen, wird dem hin und her zwischen PHP- und HTML-Laufzeitprozessor ein Performanzverlust nachgesagt. Die Meinungen sind jedoch nicht eineindeutig und je nach Fall kann auch der Wechsel zwischen den Prozessoren/Interpretoren für PHP und HTML die performantere Variante sein. In keinem der beiden Fälle sind die Unterschiede so gering, dass etwaige Verluste vernachlässigbar sind und es mehr eine Frage der persönlichen Präferenz ist, welche der beiden Syntaxvarianten man vorzieht.

  1. <?php echo "<p>Hallo Welt</p>"; ?>

Weil dieser Code quatsch ist, schließlich genügte es „Hallo ‚Welt“ direkt per HTML (<p>Hallo Welt</p>) auszugeben, wollen wir die Ausgabe der Begrüßung an eine Bedingung knüpfen.

  1. <?php $uhrzeit = date('H'); ?>
  2. <p><?php echo $uhrzeit > 12 ? "Hallo Welt" : "Guten Morgen Welt"; ?></p>

Wir haben eine Variable, eingeleitet durch das Dollarzeichen ($uhrzeit = …), gesetzt, in der mittels der vordefinierten PHP-Funktion date() die Uhrzeit über den Format-Parameter 'H' in einer Ganzzahl von 0 bis 23 Uhr abhängig von der jeweils aktuellen Tageszeit auf dem Server speichert. Vor dem Fragezeichen fragen wir, ob es wahr (ob boolscher Wert „true“ zutreffend) ist, dass die Uhrzeit größer 12 ist, also nach Mittag und vor Mitternacht. Trifft diese Bedingung zu, wird der erste String ausgegeben, trifft es nicht zu (boolscher Wert ist „false“), wird der Zweiter nach dem Doppelpunkt ausgegeben. Die einzelnen Anweisungen (Variablenzuweisungen und Funktionen) werden in PHP mit Semikolon abgeschlossen. Das abschließende Semikolon ist zwingend erforderlich. Die Syntax, die hier verwendet wurde, ist PHP-Shorthand für eine if-Bedingung. Häufig findet man die Bedingung zwecks besserer

Wir haben eine Variable ($uhrzeit = ...) gesetzt, in der mittels der vordefinierten PHP-Funktion date()Syntax der if-Bedinung nicht in shorthand zwingend erforderlich ist. Un so sieht eine ausführliche if-Bedingung aus, die der Übersichtlichkeit geschuldet eingerückt über mehrere Zeilen geschrieben:

  1. <?php
  2. if (date('H') == 12)
  3. {
  4. echo "Mahlzeit!";
  5. }
  6. else
  7. {
  8. echo "Hallo!";
  9. }
  10. ?>

Um das Ganze noch etwas zu variieren, wird in der Bedingung die Frage gestellt, ob es Punkt 12 ist (Abfrage erfolgt mit doppelten Gleichheitszeichen ‚==‘) und die Uhrzeit wird auch nicht extra in eine Variable geschrieben sondern direkt in der if-Frage gestellt. Ist es 12 Uhr, grüße die Besucher der Website wie in schwäbischen Kantinen mit „Mahlzeit!“ und sonst mit „Hallo!“

Schauen wir uns die Syntax genauer an. Der PHP-Code wird über eine öffnende spitze Klammer, Fragezeichen und „php“ eingeleitet, es folgt die if-Frage mit der Frage in runder Klammer, gefolgt von einer Klammerung in spitzer Klammer, die der Gruppierung und Unterordnung unter die if-Bedingung der Anweisungen, die mit einem Semikolon abgeschlosen wurde. Die spitze Klammer iist bei nur einer Anweisung nicht zwingend erforderlich. Am Ende wird die PHP-Anweisung mit Fragezeichen und schließender spitzen Klammer geschlossen.

Fassen wir zusammen, was wir bis hier hin gelernt haben:

  • PHP ist eine serverseitige Scriptsprache zur Verarbeitung von Daten, bevor sie an den HTML Interpreter übergeben werden.
  • PHP kann HTML ausgeben oder/und in HTML eingebettet werden.
  • PHP wird vom Server erkannt, wenn die Dateiendung der Textdatei auf „.php“ endet und die Anweisungen im Script von spitzer Klammer und Fragenzeichen (<?php ... ?>) umschlossen sind.
  • Anweisungen müssen mit einem Semikolon abgeschlossen werden.
  • PHP kennt Text (= Strings), Zahlen und Boolsche Wahr-/Falsch-Werte (true, false) und Funktionen
  • Strings werden von einfachen oder doppelten Anführungszeichen umschlossen. Übrigens umschließt man Zahlen mit Anführungszeichen vergißt PHP, daß die Zahl eine Zahl ist oder true und false boolsche Werte und damit Entscheidungparameter sind.
  • Mit PHP können, an Bedingungen geknüpft, dynamisch Inhalte ausgegeben werden.
  • Variablen werden mit einem Dollarzeichen eingeleitet (gekennzeichnet) und speichern Werte.
  • Funktionen und Bedingungen werden von runden Klammern gefolgt, die Parameter und Abfragen aufnehmen können.
  • Spitze Klammern dienen der Gruppierung und Zuordnung einer oder mehrere Anweisungen zu einer Bedingung (übrigens auch gültig für Funktionen)
  • Werte umd Text werden über den Befehl echo ausgegen.
  • Die aktuelle Stunde kann über die Funktion date('H') ermittelt werden.

Bevor wir zum ersten eígenen ertüftelten PHP-Script übergehen hier noch ein paar Informationen:

Vergleichoperatoren, ein oder mehr Bedingungen und ein oder mehr einander abhängige if-Klauseln

Operator Bedeutung
== gleich
=== absolut gleich einschließlich Variablentyp (String, Boolean, Integer, Float)
!= ungleich (identisch mit <>)
<> ungleich (identisch mit !=)
< kleiner
<= kleiner oder gleich
> größer
>= größer oder gleich
  • Zwei und mehr if-Bedingungen, die alle erfüllt werden müssen, werden in der Klammer mit dem doppelten kaufmännischen UND (&&) oder einem in Großbuchstaben AND an einander gereiht
  • Bedingungen bei dem die eine oder andere aber nicht notwendiger Weise alle erfüllt sein müssen, wird mit zwei senkrechten (||) oder in Großbuchstaben OR aneinander gereiht (mehr siehe PHP-Dokumentation über logische Operatoren).

  • If-Else-Anweisungen lassen sich mit ifelse erweitern, Auf die if-Klausel (if(){...}) folgt eine ifelse-Klausel (ifelse(){...}) und ggf. weitere und wird mit einer else-Klausel (else{...}) abgeschlossen.

Mit diesen Informationen sind Sie nun in der Lage, ihren Seitenbesuchern je nach Tageszeit einen schönen Morgen, Tag, Abend und eine gute Nacht wünschen. Viel Erfolg beim Austüfteln ihres ersten eigenen Scripts.

[serialposts]

Leave a Reply