Kapitel

Inhalt / Thema

1.1 Was ist denn PHP überhaupt ???
1.2 Was brauchen Sie für PHP ???
1.3 PHP - Die Syntax - Die erste PHP-Seite
Dateiformate
1.4 PHP - Eine eigene Spache
- Kommentare bei PHP
- Variablen bei PHP
- Datenfelder - Arrays bei PHP
- Assoziative Arrays - Hashes
- Ausdrücke - Operatoren - Operanden
- Der Modulo-Operator / Die Inkrement- und Dekrement-Operatoren
- Die verschiedenen Zuweisungs-Operatoren
- Schleifen / Kontrollstrukturen bei PHP (IF-ELSEIF-ELSE, FOR, WHILE, DO-WHILE, SWITCH-CASE)
- Funktionen bei PHP
- Klassen und Objekte bei PHP
- Nützliche PHP-Funktionen

 

1.1 Was ist denn PHP überhaupt ???

PHP ist eine schlichte Abkürzung und steht für PHP: Hypertext Prozessor. Der erste veröffentliche Titel, damals von dem Entwickler Rasmus Lerdorf, stand allerdings für Personal Home Page Tools, was auch irgendwie logischer und einfacher klingt.

PHP ist eine Skriptsprache und wird im HTML-Quelltext eingebunden, um dem Webmaster die Möglichkeit zu geben, zum Beispiel eine dynamische Webseite zu erstellen oder auch eine kleine Datenbank an seine Homepage anzubinden. Hier kommt MySQL ins Spiel, dies ist eine weltbekannte und auch sehr gern genutzte schnelle Datenbank, über die hier auch ein eigener Workshop entstehen wird. PHP und MySQL, das sind sozusagen das Wasser und Brot für den geübten Webmaster bei der Erstellung interessanter Webseiten.

Ganz wichtig bei PHP, worüber man sich immer im Klaren sein muß : Jedes PHP-Skript bzw. der PHP-Code wird auf dem Webserver abgelegt und auch nur da ausgeführt ! Bei JavaScript, im Gegensatz zu PHP, wird alles auf dem Client ausgeführt.
Der Syntax der Skriptsprache PHP ist angelehnt an die bekannten Programmiersprachen C, Java oder auch Perl.

Wichtige Aufgaben, die PHP für Sie erledigen kann, sind zum Beispiel Formulardaten von HTML übernehmen, auswerten und wiedergeben. Außerdem kann man die sogenannten Cookies empfangen und absenden oder auch, wie schon oben erwähnt, ganz allgemein gesagt dynamische Webseiten damit erstellen. Zu all diesen Punkten kommt später im Workshop natürlich noch mehr, lassen Sie es einfach erst einmal auf sich wirken.

Wenn Sie meinen Workshop zu HTML vorher durchgelesen und verstanden haben, kann sich das als sehr nützlich erweisen.

1.2 Was brauchen Sie für PHP ???

Wie auch bei HTML brauchen Sie um PHP-Code zu schreiben einen ganz normalen Texteditor, mit dem Sie den eingegebenen Text im ASCII-Format abspeichern können.

PHP-Fehlermeldungen werden in der Regel jeweils mit der Nummer der Zeile auf Ihrem Bildschirm aufgeführt, wo der Fehler passiert ist. Es wäre also sehr von Vorteil, wenn Sie einen Texteditor nutzen würden, der ebenfalls vor jeder eingegebenen Zeile die Zeilennummer aufführt.

Die zweite Sache, die Sie unbedingt brauchen im Umgang mit PHP, ist ein funktionstüchtiger Webserver, auf dem die PHP-Skripte ausgeführt werden können. Wie schon oben erwähnt, ist PHP eine serverbasierte Skriptsprache und alle Skripte können eben nur auf einem geeigneten Webserver ausgeführt werden. Webserver können zumeist kostenlos bezogen werden oder können von den jeweiligen Homepages der Anbieter downgeloaded werden. Prominentester Anbieter ist natürlich der Webserver Apache, über den hier auch noch ein Workshop entstehen soll.

Wenn Sie mit PHP eine Datenbankanbindung an Ihre Homepage realisieren wollen, brauchen Sie des weiteren natürlich auch eine solche SQL-Datenbank. SQL steht in diesem Falle für Structured Query Language. Wir werden in diesem PHP-Workshop von der Datenbank MySQL Gebrauch machen, weil diese erstens kostenlos zu haben ist und zweitens in der Schnelligkeit keine Wünsche offen läßt.

 1.3 PHP - Die Syntax - Die erste PHP-Seite

Der PHP-Code wird, wie schon oben beschrieben, in den HTML-Code "eingebettet" und dies mit speziellen Tags. Ja, Sie sehen richtig, auch PHP nutzt die Tags, dies sind neben HTML- auch PHP-Befehle, die zur Anwendung kommen.

Zur Einleitung hier noch einmal das Grundgerüst einer HTML-Seite :

  <HTML>
   <HEAD>
      <TITLE></TITLE>
   </HEAD>
   <BODY>
   </BODY>
   </HTML>

Und nun betten wir einmal einen kleinen PHP-Code hinein, mit dem aus dieser HTML-Seite sofort schon eine funktionstüchtige PHP-Seite entsteht :

<HTML>
   <HEAD>
      <TITLE>Die erste PHP-Seite</TITLE>
   </HEAD>
   <BODY>

       <SCRIPT LANGUAGE="PHP">
            ECHO "Die erste PHP-Seite!";
       </SCRIPT>

   </BODY>
</HTM
L>

Dies ist der Beispiel-Code für eine erste PHP-Seite, sehen wir uns an warum :

Im Prinzip sieht der Code wie der obige HTML-Code aus, er wurde aber ergänzt. Es befindet sich nämlich nun innerhalb der Body-Tags der PHP-Code.

Wichtig beim PHP-Code :
Er darf an jeder beliebigen Stelle des HTML-Codes eingebunden werden !!!

JEDE Anweisung (z.B. der ECHO-Befehl) muß bei PHP mit einem Semikollon abgeschlossen werden !!!

Anweisungen und Befehle werden bei PHP in der Reihenfolge bearbeitet und ausgeführt, in der sie untereinander angeordnet bzw. im PHP-Code stehen !!!

 

In diesem Falle sehen uns also nur einmal den Body der HTML-Seite an, den hier entstanden die Veränderungen. Mit dem PHP-Tag <SCRIPT LANGUAGE="PHP"> wird mitgeteilt, daß ab hier der PHP-Code eingeführt wird und auch so speziell interpretiert werden muß. Mit dem Befehl ECHO wird ein simpler Text ausgegeben. Zum Schluß wird der PHP-Code mit dem Tag </SCRIPT> wieder geschlossen, das war es auch schon.

Es gibt drei Möglicheiten um festzulegen, wo der PHP-Code beginnt und ihn damit vom HTML-Code abzugrenzen :

 

<?
.....
?>
  <?php
.....
?>
  <SCRIPT LANGUAGE="PHP">
.....
</SCRIPT>

Ich selber bevorzuge die Variante ganz rechts (auch siehe oben), die zwar etwas ausführlicher und umständlicher ist, dafür es aber meiner Meinung am besten schafft, den PHP-Code ganz klar und übersichtlich vom HTML-Code zu trennen.

Dateiformate bei PHP

Nachdem Sie nun den oben aufgeführten in einem Texteditor Ihrer Wahl eingetippt haben, wollen wir abspeichern. Alle HTML-Dokumente haben standardmäßig die Dateiendung .htm oder auch .html, bei PHP-Dokumenten sieht dies anders aus.

Bei PHP gibts es ebenfalls mehrere zulässige Dateiendungen, die Gebräuchlichste ist dabei .php
Da es in der Geschichte von PHP schon mehrere Versionen gegeben hat (die Aktuellste ist PHP 4.0), lassen sich auch die PHP-Dokumente verschiedenartig abspeichern. Haben Sie Ihr PHP-Dokument mit Funktionen der Version 3 gefüttert, sollten Sie also die Dateiendung .php3 wählen, haben Sie sich für die Fortsetzung entschieden speichern Sie einfach unter .php4 ab. Wollen Sie gar nicht falsch machen, nehmen Sie wie schon gesagt einfach die Endung .php für Ihre Dateien.

 1.4 PHP - Eine eigene Sprache

Jede Programmiersprache hat ihre Eigenheiten und verschiedenen Möglichkeiten, auch PHP macht hier keine Ausnahme.

Kommentare bei PHP

Kommentare sind meist lebenswichtig im Umgang mit den Programmiersprachen und werden überall anders in den Quelltext eingebettet. PHP bietet Ihnen dazu die drei folgenden Möglichkeiten :

// Ein Kommentar   /* Ein weiterer Kommentar */   # Noch ein Kommentar

 
Variablen bei PHP

Jede Programmiersprache hat u.a. die Aufgabe, spezielle Informationen zwischenzuspeichern und im späteren Verlauf freizugeben und weiterzuverarbeiten. Auch PHP nutzt diese Bereiche im Speicher, um Variablen abzulegen. 

Wichtig beim Umgang mit PHP-Variablen :
Normalerweise muß für jede neu angelegte Variable ein Datentyp deklariert werden (z.B. ist der Wert "4" eine Zahl oder der Wert "Z" ein Character / Buchstabe).
Bei PHP geschieht dies automatisch, der Datentyp muß nicht explizit deklariert werden, sondern ergibt sich für PHP aus dem späteren Zusammenhang.

 

Variablen werden unter PHP mit einem vorangestellten Dollarzeichen beschrieben. Auf die Groß- und Kleinschreibung beim Variablennamen muß geachtet werden !
Außerdem bitte darauf achten : Sollten Sie einer Variablen einen Kommawert zuweisen, müssen Sie statt einem Komma einen Punkt benutzen (siehe aus das Beispiel).

Beispiele für PHP-Variablen :   $ZAHL = 1;

$ZAHL = 1.5;

$BUCHSTABE = b; $WORT = Test;

Die Ausgabe der Variablen auf dem Bildschirm ist auch sehr einfach, dies geschieht mit dem ECHO-Befehl unter PHP so :

ECHO $ZAHL;

Soll eine Variable in einem Textzusammenhang ausgegeben werden, müssen unter PHP die doppelten Anführungszeichen im ECHO-Befehl benutzt werden, hiermit wird die Variable ordnungsgemäß durch ihren deklarierten Wert ersetzt :

ECHO "Der Wert dieser Zahl ist $ZAHL";

Datenfelder - Arrays bei PHP

Auch in anderen Programmiersprachen sind Arrays ein sehr mächtiges Werkzeug, um Werte von Variablen übersichtlich und logisch zu verwalten.

Ein Array ist sozusagen eine Sammlung von Werten für eine Variable, das Array ist ebenfalls eine Variable, aber eine, die mehrere Werte gleichzeitig aufnehmen kann und auf diese per Indizes später zugreifen kann.

Beispiel für ein Array : $Auto[0] = "Golf";
$Auto[1] = "Audi";
$Auto[2] = "BMW";
$Auto[3] = "Ford";

Bei der Erstellung des Arrays wird folgendermaßen vorgegangen :

Zuerst wird der Name des Arrays angegeben, in diesem Falle das Array Auto. In den eckigen Klammern dahinter steht die Nummer des Indizes, über den nachher auf die einzelnen Werte der Variable / des Arrays zugegriffen werden kann. Es wird immer bei 0 begonnen, die weiteren Indizes werden dann (auch automatisch) fortlaufend vergeben (also 1,2,3 usw.).

Weitere Möglichkeiten, um ein Array erstmalig anzulegen und zu initialisieren sind die Folgenden. Entscheiden muß man sich nun selber, welche Möglichkeit man am besten findet oder man sich am besten merken kann.

$Auto = array("Golf", "Audi", "BMW", "Ford");
$Auto = array(1=>"Golf", 2=>"Audi", 3=>"BMW", 4=>"Ford");

Um auf einen Wert des Arrays explizit zuzugreifen, gibt man einfach nur in seinem Code den Index in den eckigen Klammern an und läßt mit dem ECHO-Befehl ausgeben. In dem folgenden Beispiel würde der Wert BMW auf dem Bildschirm ausgegeben werden :

ECHO $Auto[2]

Assoziative Arrays = Hashes

Die sogenannten Indizes haben wir nun eben kennengelernt. Man kann diese aber in anderer Form für sich nutzen und zwar in dem selbst eigene Indizes festgelegt, über die man dann später auf die Werte des Arrays zugreifen kann. Man spricht in diesem Falle von assoziativen Arrays oder auch den Hashes. Somit kann man das Array seinen eigenen Bedürfnissen anpassen.

Beispiel für ein Hash : $Baujahr[Golf] = 1994;
$Baujahr[Audi] = 1997;
$Baujahr[BMW] = 1998;
$Baujahr[Ford] = 1993;

Sie sehen selbst : Das Array Baujahr ist genauso ein Array wie das vom obigen Beispiel, nur habe ich diesmal eigene Indizes und zwar für die einzelnen Automarken genommen. Über diese kann ich nun auf die Daten zugreifen, in diesem Falle wird das Baujahr des Golfes ausgegeben und zwar das Jahr 1994 :

ECHO $Baujahr[Golf]

Ausdrücke - Operatoren - Operanden

Diese 3 Fachbegriffe gehören in jeder Programmiersprache direkt zusammen, so auch in der Skriptsprache PHP.
Ein Ausdruck setzt sich aus mehreren Operanden zusammen, die ihrerseits über einen Operator miteinander verknüpft sind. Dies hört sich zwar auf den Blick sehr mathematisch an, Sie werden aber auch bald sehen, daß alles sehr logisch ist.

Hier nun ein paar Beispiele zum ersten Überblick :

Beispiel für einen Ausdruck : $Zahl = $Zahl + 1;
Beispiel für einen Operanden : $Zahl2 = 2001;
Beispiele für Operatoren : + oder *

Wir fassen nun zusammen :
Typische Ausdrücke können zum Beispiel mathematische Rechenoperationen sein, oder auch Zuweisungen wie z.B. Variablenzuweisungen oder auch Vergleichsausdrücke (die sog. Bedingungen, oft verwendet zusammen mit Kontrollstrukturen z.B. $Zahl > 0). Ausdrücke bzw. Bedingungen können entweder den Wert wahr (true) oder falsch (false) annehmen.
Operanden sind normalerweise festgelegte Variablen oder auch Konstanten, diese können aber auch genauso gut wieder Ausdrücke für sich selbst sein.
Operatoren sind am Einfachsten zu beschreiben, dies ist nämlich die Sammlung aller Rechenzeichen (+ ; - ; * ; / ).

Da mit Ausdrücken oft Bedingungen überprüft werden (true oder false), werden diese also mit Hilfe von Vergleichsoperatoren gebildet. Dabei aufpassen : Prüft man auch Gleichheit, müssen zwei Gleichheitszeichen hintereinander geschrieben werden !

Vergleichsoperatoren bei PHP : < kleiner als
<= kleiner oder gleich
> größer als
>= größer oder gleich
== gleich
!= ungleich

Sie können logische Ausdrücke auch miteinander verknüpfen und zwar mit :

Verknüpfungen von Ausdrücken && logisches und
|| logisches oder

Es folgen nun ein paar Beispiele für Ausdrücke mit den eben aufgeführten Möglichkeiten zur Deklaration :

$X == 1 ... wird wahr (true), wenn der Wert von X gleich dem Wert 1 ist
$Y > 10 ... wird unwahr (false), wenn der Wert von Y kleiner als der Wert 10 ist.
$X > 5 && $X < 10 ... wird wahr (true), wenn der Wert von X sowohl größer als 5 als auch kleiner als 10 ist.
$X == 1 || $Y == 2 ... wird wahr (true), wenn der Wert von X gleich 1 ist oder der Wert von Y gleich 2 ist.
$X > 5 && $X < 10 || $Y != 20 ... wird wahr (true), wenn der Wert X zwischen 5 und 10 liegt oder der Wert von Y nicht gleich 20 ist.

 

Wenn man gleichzeitig die Operatoren && und || in einem Ausdruck benutzt, hat der &&-Operator die höhere Prioriät als der ||-Operator !!!

Wenn man auf der sicheren Seite seien will, benutzt man einfach Klammern, wie früher im Mathematikunterricht :

( $X > 5 && $X < 10 ) || $Y != 20

Der Modulo-Operator / Die Inkrement- und Dekrement-Operatoren

Kommen wir nun noch zu drei weiteren sehr nützlichen Operatoren neben den normalen Rechenoperatoren, mit denen Ausdrücke gebildet werden können.

Der Modulo-Operator hat dabei die Aufgabe, bei einer ganzzahligen Division den Restbetrag zurückzugeben. Normalerweise benutzt man den Operator / für eine Division zweier Zahlen, in diesem nutzt man % :

10 % 3 ... ergibt den Wert 1, weil 10 dividiert durch 3 den Wert 3 ergibt und der Rest den Wert 1 hat.

Der Inkrement-Operator erhöht eine Variable um den Wert 1 ohne lästige Zusatzeingaben, beschrieben mit dem Operator ++ :

$X = 1;

$X++;

... erhöht den Wert der Variable X nachträglich um den Wert 1, hat also nun den Wert 2 !!

Der Dekrement-Operator erniedrigt eine Variable um den Wert 1 ohne lästige Zusatzeingaben, beschrieben mit dem Operator --

$X = 2;

$X--;

... erniedrigt den Wert der Variable X nachträglich um den Wert 1, hat also nur noch den Wert 1 !!

Die verschiedenen Zuweisungs-Operatoren

Um den Speicherplatz einer Variable mit einem Wert zu belegen, muß diesem ein Wert zugewiesen werden mit Hilfe einer der Zuweisungs-Operatoren.

Dabei muß man unterscheiden zwischen der einfachen Zuweisung mit dem Gleichzeichen-Operator = und denjenigen Zuweisungs-Operatoren, die bevor sie einen Wert einer Variable zuweisen noch eine Rechenoperation vollziehen.
Das Gleichheitszeichen sollte man sich stets als "ergibt sich zu" vor Augen halten und es nicht deuten als "ist gleich" !!

Hier einige Beispiele :

$ZAHL = 1; ... füllt die Variable ZAHL mit dem Wert 1 ; der Zuweisungs-Operator
$ZAHL += 3; ... = $ZAHL = $ZAHL + 2 ergibt sich zu dem Wert 4
$ZAHL %= 3; ... = $ZAHL = $ZAHL % 3 ergibt den Wert 1

Es gibt noch diverse weitere Operatoren, die noch später in diesem Workshop auftauchen werden. Diese werden dann zu gegebener Zeit besprochen. Und übrigens : Auch das Dollarzeichen für die Deklarierung einer Variable stellt einen Operator dar, genauso wie Zeichen =>, was wir bei den Arrays weiter oben kennen gelernt haben.

Schleifen / Kontrollstrukturen bei PHP

Um den Ablauf in Ihren PHP-Skripten zu verbessern und besser steuern zu können, wollen wir uns in diesem Kapitel des Workshops einmal die Schleifen und sonstigen anderen Kontrollstrukturen der Sprache PHP widmen.

Die wichtigsten Kontrollstrukturen stellen bei PHP wie bei anderen Programmiersprachen die Schleifen IF-ELSEIF-ELSE , FOR , WHILE, DO-WHILE und die Auswahlstruktur SWITCH-CASE dar.

 

1.1 IF-ELSEIF-ELSE

Wenn die Ausführung einer Anweisung oder eines Befehls von einer Bedingung abhängig sein soll, verwendet man am besten die IF-Bedinung.

Allgemeine Syntax

Alternative Syntax

Beispiel im PHP-Code

IF (Ausdruck)

   AnweisungX;

ELSEIF (Ausdruck2)

   AnweisungY;

ELSE

   AnweisungZ;

IF (Ausdruck) :

   AnweisungX;

ELSEIF (Ausdruck2) :

   AnweisungY;

ELSE :

   AnweisungZ;

ENDIF;

IF ($Y < 10)

   ECHO "Die Zahl $Y ist kleiner als 10.";

ELSEIF ($Y == 10)

   ECHO "Die Zahl $Y ist gleich 10.";

ELSE

   ECHO "Die Zahl $Y ist größer als 10.";

Bei der if-Bedingung gilt die Regel : Bei mehr als einer Bedingung verwendet man die elseif-Bedingung.

 

1.2 SWITCH-CASE-Anweisung

Will man zwischen mehr als zwei Fällen unterscheiden, bietet sich zwar auch die elseif-Bedinung an. Es empfiehlt sich in diesem Falle aber eher, die SWITCH-Anweisung zu nehmen.

 

Allgemeine Syntax

Beispiel im PHP-Code

SWITCH (Ausdruck)

{

CASE AusdruckX:

   AnweisungX;

   BREAK;

CASE AusdruckY:

   AnweisungY;

   BREAK;

DEFAULT :

   Anweisung_default;

   BREAK;

}

SWITCH ($Z)

{

CASE 10:

   ECHO "Die Zahl $Z ist gleich 10.";

   BREAK;

CASE 20:

   ECHO "Die Zahl $Y ist gleich 20.";

   BREAK;

DEFAULT:

   ECHO "Die Zahl $Y ist gleich 100.";

   BREAK;

}

Hierbei sind die geschweiften Klammern und die Doppelpunkte nach jedem CASE-Ausdruck zu beachten. Hier liegen öfter Fehler begraben.
Die letzte der SWITCH-CASE-Anweisung ist die DEFAULT-Anweisung. Diese Anweisung wird ausgeführt, wenn kein anderer CASE-Ausdruck wahr ist.

Wenn die Anweisung eines CASE-Ausdrucks abgearbeitet ist und die anderen nicht mehr ausgeführt werden sollen, muß hinter jedem dieser CASE-Blöcke eine BREAK-Anweisung stehen !!

 

1.3 Die FOR-Schleife

Bei der FOR-Schleife handelt es sich um eine Zählschleife und die Möglichkeit, eine bestimmte Anweisung beliebig einstellbar oft zu wiederholen.

 

Allgemeine Syntax

Beispiel im PHP-Code

FOR (AusdruckX ; AusdruckY ; AusdruckZ)

   Anweisung;

FOR ($X = 10 ; $X <= 100 ; $X = $X + 1))

   ECHO "$X<br>";

Alternative Syntax

FOR (AusdruckX ; AusdruckY ; AusdruckZ) :

   Anweisung;

ENDFOR;

 

Das Wichtige an der FOR-Schleife ist die Klammer, diese werden wir uns nun genauer anschauen.

Der erste Ausdruck in der Klammer wird einmalig ganz zum Anfang festgelegt, im Beispiel wird der Variable X der Wert 10 zugeordnet.
Mit dem zweiten Ausdruck wird die Schleife kontrolliert, die ECHO-Anweisung in diesem Falle wird so oft ausgeführt, so lange der Wert der Variablen X nicht den Wert 100 überschreitet.
Kontrolle wird auch mit dem dritten Ausdruck erreicht, dieser wird nämlich nach jedem Durchlauf bzw. nach jedem Ausführen der ECHO-Anweisung ausgewertet. Der dritte Ausdruck wird auch oft Schleifenkontrollvariable genannt, die Variable wird nach jedem Durchlauf verändert und stößt also irgendwann an die Grenze des zweiten Ausdrucks. Dies ist auch der Sinn dieser Zählschleife. 

Im Beispiel werden also die Zahlen von 10 bis 100 ausgegeben !

 

1.4 Die WHILE-Schleife

Die WHILE-Schleife wird auch als Wiederholungsschleife bezeichnet, weil die Anweisungen in der Schleife so lange ausgeführt werden wie die WHILE-Bedingung einen wahren Wert erhält. Die Überprüfung dieser WHILE-Bedingung erfolgt jeweils vor dem Ausführen der Anweisun(en), man spricht deshalb auch oft von einer kopfgesteuerten Wiederholungsschleife.

 

Allgemeine Syntax

Alternative Syntax

Beispiel im PHP-Code

WHILE (AusdruckX)

{

   Anweisung(en);

}

WHILE (AusdruckX) :

{

   Anweisung(en);

}

ENDWHILE;

$X = 1;

WHILE ($X <= 10)

{

   ECHO "$X<br>";

   $X++;

}

Zuerst einmal sieht man gleich, daß man die Laufvariable zuerst einmal festlegen muß. Auch muß man strengstens darauf achten, die Variable innerhalb der Schleife zu erhöhen, in diesem Falle um den Wert 1 mit der Möglichkeit des Inkrement-Operators. Wenn Sie dies vergessen, erhalten Sie leider eine Endlos-Schleife, die sich nur schwer wieder stoppen läßt.

Wieder werden Zahlen ausgegeben, und zwar die von 1 - 10.

 

1.5 Die DO-WHILE-Schleife

Die DO-WHILE-Schleife ist ähnlich wie die normale WHILE-Schleife aufgebaut.

Der große Unterschied ist hierbei allerdings, daß die Überprüfung der Bedingung erst nach dem Ausführen der Anweisungen erfolgt, deshalb spricht man auch von der fußgesteuerten Wiederholungsschleife. Durch die Überprüfung zum Schluß hat man die Sicherheit, daß die Schleife mit den Anweisungen wenigstens einmal durchlaufen wird, auch wenn die Bedingung gar nicht wahr ist.

 

Allgemeine Syntax

Beispiel im PHP-Code

DO

{

   Anweisung(en);

}

WHILE (AusdruckX)

$X = 1;

DO

{

   ECHO "$X<br>";

   $X++;

}

WHILE ($X <= 10)

Hier werden auch wieder die Zahlen 1 - 10 ausgegeben.

Um eine Endlos-Schleife zu erzeugen, setzt man einfach zum Schluß die Bedingung WHILE (TRUE).

 

1.6 BREAK und CONTINUE - Das vorzeitige Beenden von Wiederholungsschleifen

Mit der BREAK-Anweisung hat der Programmierer die Möglichkeit, eine Wiederholungsschleife in ihrer Ausführung sofort abzubrechen.

Das folgende Beispiel ist an das obere angelehnt und soll zeigen, wie es funktioniert :

 

Allgemeine Syntax

Beispiel im PHP-Code

DO

{

   Anweisung(en);

   BREAK;

}

WHILE (AusdruckX)

$X = 1;

DO

{

   ECHO "$X<br>";

   $X++;

   BREAK;

}

WHILE ($X <= 10)

Hierbei wird der Wert der Variablen X einmal ausgegeben, danach wird die Ausführung der Schleife mit der BREAK-Anweisung komplett abgebrochen.

Mit der CONTINUE-Anweisung hat der Programmierer dagegen die Möglichkeit, direkt zum nächsten Durchgang der Wiederholung zu springen, ohne die restlichen Anweisungen im aktuellen Anweisungsblock auszuführen

Auch hierfür ein kleines Beispiel :

 

Allgemeine Syntax

Beispiel im PHP-Code

DO

{

   Anweisung(en);

   CONTINUE;

}

WHILE (AusdruckX)

$X = 1;

DO

{

   $X++;

   if ($X == 5)

      CONTINUE;   

   ECHO "$X<br>";

}

WHILE ($X <= 10)

Bei diesem Beispiel werden die Zahlen von 1 - 4 und von 6 - 10 ausgegeben. Wenn der Wert der Variablen gleich 5 ist, wird mit Hilfe der CONTINUE-Anweisung der ECHO-Befehl einfach übersprungen.

 
Funktionen bei PHP

 Funktionen sind allgemein gesagt dazu da, spezielle Anweisungsblöcke, die man häufiger gebraucht, nur einmal zu schreiben und nachher dann nur noch mit der Funktion selber aufzurufen. PHP bringt schon von Haus aus viele Funktionen mit, man kann sich allerdings auch eigene zusammenbauen und später effizient nutzen.

 

1.1 Eine eigene Funktion erstellen

Das Wort FUNCTION stellt bei PHP das Schlüsselwort dar, mit dem man das Schreiben einer Funktion beginnt. Danach folgt der gewünschte Name der Funktion, abgeschlossen wird der sog. Funktionskopf durch zwei Klammern. Diese haben auch die Aufgabe, eventuelle Parameter, die der Funktion mitgegeben werden sollen, aufzunehmen. Der Funktionsrumpf mit den Anweisungen wird durch zwei geschweifte Klammern dargestellt.

Hier ein Beispiel, wie eine Funktion aussehen könnte und wie diese im PHP-Code aufgerufen wird :

 

Allgemeine Syntax

Beispiel einer Funktion

Aufrufen der Funktion 

FUNCTION Funktionsname ()

{

   Anweisung(en);

}

FUNCTION Beispiel ()

{

   ECHO "Dies ist eine   Beispiel-Funktion";

 }

<HTML>
   <HEAD>
      <TITLE>Beispiel einer Funktion</TITLE>
   </HEAD>
   <BODY>

       <SCRIPT LANGUAGE="PHP">
            
      FUNCTION Beispiel ()
                  {
                    ECHO "Dies ist eine Beispiel-Funktion";
                  }
                 Beispiel ();
       </SCRIPT>

   </BODY>
</HTM
L>

Sie sehen hier am Beispiel, daß eine Funktion zuerst im PHP-Code erstellt und dann mit dem Funktionsnamen aufgerufen wird.

Um bestimmte Funktionen zu sammeln und in beliebigen PHP-Dokumenten später aufrufen zu können, gibt es die Möglichkeit, diese Funktionen in einer ganz eigenen Datei (z.B. Funktionen.php) zu speichern und diese Datei dann später im PHP-Dokument direkt aufzurufen und auf die Funktionen zurückzugreifen. Um den Zusammenhang besser zu verstehen, müssen wir uns allerdings noch zwei Dinge näher anschauen :

 

1.2 INCLUDE und REQUIRE

Mit Hilfe dieser beiden Anweisungen hat man die Möglchkeit, den Quelltext aus einer anderen Datei direkt in den vorhandenen Quelltext einzufügen und dort sofort weiter zu nutzen. Der Code dieser anderen Datei wird quasi so behandelt, als stünde er dort im aktuellen Quelltext, wo er eingebunden wird.

Mit der REQUIRE-Anweisung wird der Inhalt der anderen Datei in jedem Falle eingelesen, auch wenn der Code vielleicht später nicht einmal gebraucht werden sollte.

 

Der Syntax von REQUIRE () : REQUIRE("Funktionen.php")

Dort, wo Sie diese REQUIRE-Anweisung im PHP-Code setzen, wird der Inhalt dieser Datei auch eingelesen und die Funktionen sind ab hier verfügbar und müssen nicht erst noch wieder eingetippt werden. Bitte achten Sie hierbei auf die doppelten Anführungszeichen in der Klammer !!

Bei der INCLUDE-Anweisung wird der Inhalt der Datei nur dann eingelesen, wenn die INCLUDE-Anweisung auch tatsächlich ausgeführt wird. Oft wird diese Anweisung in Schleifen benutzt, um entweder Dateien öfter einzulesen oder sogar verschiedene Dateien einzulesen.

 

Der INCLUDE-Syntax ist ähnlich wie bei REQUIRE :  INCLUDE("Funktionen.php")

 

1.3 Parameter (Wert-) Übergabe in Funktionen

Wie schon oben erwähnt, stehen die beiden runden Klammern bei Funkionen dafür zur Verfügung, um Parameter bzw. Werte beim Aufruf der Funktion zu übernehmen. Die Funktion erhält aber lediglich eine Kopie dieses Wertes, kann diesen zwar verwenden, aber NICHT verändern.

Beim Aufruf der Funktion im PHP-Code werden diese Parameter dann an die Funktion direkt übergeben und umgesetzt. Sollen mehr als ein Parameter übergeben werden, werden diese in den Klammern durchs Kommata getrennt :

 

Allgemeine Syntax

Beispiel im PHP-Code

FUNCTION Funktionsname (Parameter)

{

   Anweisung(en);

 }

 

FUNCTION Beispiel($NAME)

{

   ECHO "Dies ist ein Beispiel für die Funktion $NAME.";

}

Beispiel("Beispiel für Funktionen");

In diesem Beispiel wird die Funktion Beispiel wieder erstellt, und man teilt ihr gleich mit, daß bei ihrem Aufruf der Parameter NAME übergeben wird. Dieser wird dann in die Funktion übernommen, dort zur Verfügung gestellt und damit kann der Satz ausgegeben werden beim Aufruf der Funktion.

 

1.4 Referenz-Übergabe in Funktionen

Wenn die Funktion den Parameter-Wert in der Funktion selbst, beispielsweise durch Rechenoperationen, verändern können soll, müssen Sie diesen Parameter der Funktion als Referenz übergeben. Die Funktion erhält damit nicht eine Kopie des Wertes / der Variable, sondern einen direkten Verweis auf die Speicherstelle der übergebenen Variable. Sie kann also Veränderungen durchführen.

Um einen Parameter als Referenz zu übergeben, hat man zwei Möglichkeiten :

 

FUNCTION Beispiel(&$X) 1. Möglichkeit :
Man setzt das nötige &-Zeichen direkt beim Erstellen der Funktion in der Parameterliste ein, so wird der Parameter immer als Referenz übergeben.
FUNCTION Beispiel($X)
{
}

Beispiel(&$X);

2. Möglichkeit :
Man setzt das &-Zeichen erst dann vor dem zu übergebenen Parameter ein, wenn man die Funktion direkt aufruft. Dieser Wert wird dann ebenfalls als Referenz übergeben.

 

1.5 Der Rückgabewert von Funktionen

Oft werden Funktionen dafür benutzt, um Werte zu verändern oder mit Übergabeparameter Rechenoperationen durchzuführen. Um eine Funktion frühzeitig zu beenden und den veränderten Wert zurückzugeben, nutzt man die RETURN-Anweisung.

 

Allgemeine Syntax

Beispiel im PHP-Code

FUNCTION Funktionsname (Parameter)

{

   RETURN Anweisung(en);

 }

FUNCTION Beispiel($X)

{

   RETURN $X++;

}

 
Klassen und Objekte bei PHP

Bei modernen Programmiersprachen wie C, Java und Perl, wie natürlich auch bei PHP, gibts es zwei verschiedene Möglichkeiten zu programmieren, zwei unterschiedliche Programmierstile, um Probleme zu lösen oder gewisse Abläufe im Programm zu realisieren.

Auf der einen Seite gibt es den Weg der prozeduralen Programmierung. Es beschreibt den Stil, in dem der Programmierer sein Programm nach einem einfachen logischen Ablauf konzipiert, in dem er der Reihe nach Schleifen aufbaut oder auch eigene Funktionen schreibt, die nacheinander im Programmfluss aufgerufen werden. Das Quellcode wird, in diesem Falle vom PHP-Interpreter, von oben nach unten abgearbeitet, alle Anweisungen werden in der Reihenfolge ausgeführt, wie sie geschrieben sind. Bei kleineren Programmen oder Skripten, die leicht überschaubar sind, wird gerne dieser Weg der Programmierung genommen.

Sollte das Programm allerdings nachher größere Ausmaße annehmen, sollte man sich vorher schon einmal genau überlegen, wie man das Programm bzw. den Quellcode organisieren möchte. Um die Überschaubarkeit und die einfache Wartung des Code zu gewährleisten, kommt hierbei die objektorientierte Programmierung, in Fachkreisen auch OOP genannt, zum Zuge, die wir in diesem Abschnitt einmal genauer betrachten wollen.

1.1 Klassen

Bei der objektorientierten Programmierung überlegt man sich, bevor man mit dem Programmieren beginnt, genau wie man seinen Code bzw. das Skript organisieren will. Da meist 'reale' Probleme gelöst werden sollen, versuchen wir auch so zu denken. Wir denken in diesem Falle an Objekte der realen Wert. An Kaffeemaschinen, Autos oder auch andere Gebrauchsgegenstände. Auch Menschen sind Objekte. Wenn wir zum Beispiel eine Verwaltung für die Mitarbeiter der Firma schreiben wollen, die zum Beispiel das Gehalt eines Mitarbeiters oder die Namen aller Mitarbeiter ausgeben soll, denken wir ebenfalls mit Objekten, der Mitarbeiter ist in diesem Beispiel das Objekt.

Um im Skript mit einem Objekt arbeiten zu können, wird eine sogenannte Klasse angelegt. Eine Klasse ist ein abstrakter Datentyp und enthält auf der einen Seite die sogenannten Eigenschaften und auf der anderen Seite dazugehörige Funktionen, beide zusammen werden als Datenelemente bezeichnet. Um auf die Eigenschaften eines Objekts der Klasse zuzugreifen oder sie zu verändern, werden ausschließlich die dazugehörigen Funktionen, auch Methoden genannt, benutzt.

 

Allgemeine Syntax Beispiel-Code
class Klassenname
{

     var Variable1;
     var Variable2;

     function Funktionsname ()
     {
            ...
     }

}

class Mitarbeiter
{

     var $Nachname;
     var $Vorname;

     function Datenausgabe ()
     {
            echo "Name : $Nachname;
            echo "Vorname : $Vorname;
     }

}

An der allgemeinen Syntax sieht man, daß man eine Klasse im Code, wie sollte es anders sein, mit dem Schlüsselwort class definiert. Hiernach folgt der gewünschte Klassenname wie z.B. Mitarbeiter oder Auto und danach alles, was definiert werden soll, eingeschlossen in geschweifte Klammern.

Die Eigenschaften eines Objekts, daß dann später aus dieser Klassendefinition gebildet werden kann, werden mit dem Schlüsselwort var deklariert, gefolgt von der eigentlichen Notation für eine festgelegte Variable, dem $-Zeichen und dem Variablennamen.

Die Funktionen, besser gesagt die Methoden der erzeugten Klasse werden, genauso wie normale Funktionen auch, mit dem Schlüsselwort function definiert, gefolgt vom Funktionsnamen und den zu übergebenen Parametern, die in Klammern eingeschlossen werden. Alle Anweisungen der Methode werden in geschweiften Klammern gehalten.

1.2 Objekte

Bei der objektorientierten Programmierung überlegt man sich, bevor man mit dem Programmieren beginnt, genau wie man seinen Code bzw. das Skript organisieren will. 

Da meist 'reale' Probleme gelöst werden sollen, versuchen wir auch so zu denken. Wir denken in diesem Falle an Objekte der realen Wert. An Kaffeemaschinen, Autos oder auch andere Gebrauchsgegenstände. Auch Menschen sind Objekte. Wenn wir zum Beispiel eine Verwaltung für die Mitarbeiter der Firma schreiben wollen, die zum Beispiel das Gehalt eines Mitarbeiters oder die Namen aller Mitarbeiter ausgeben soll, denken wir ebenfalls mit Objekten, der Mitarbeiter ist in diesem Beispiel das Objekt wie im obigen Beispiel gezeigt.

Nachdem man nun also die Klasse erschaffen hat, hat man nun die Möglichkeit, beliebig viele Objekte dieses Klasse anzulegen und mit ihnen zu arbeiten, ihre Eigenschaften zu verändern, ihre Daten auszugeben und vieles mehr. Ein Objekt wird auch als Instanz der Klasse bezeichnet.

1.3 Konstruktor

Bevor wir nun ein Objekt der Klasse erzeugen wollen, müssen wir uns noch kurz dem Thema Konstruktor zuwenden, welches sehr wichtig in diesem Zusammenhang ist.

Um auf die lokalen Eigenschaften (Variablen) zuzugreifen, werden bei Klassen wie schon erwähnt ausschließlich die Methoden (Funktionen) verwendet. Um also ein Objekt zu initialisieren, müssen seine Eigenschaften mit 'Startwerten' belegt werden.

 

Allgemeine Syntax Beispiel-Code
class Klassenname
{

     var Variable1;
     var Variable2;

     function Klassenname ($Var1, $Var2)
     {
            $this->Variable1 = $Var1;
            $this->Variable2 = $Var2;
     }

     function Funktionsname ()
     {
            ...
     }

}

class Mitarbeiter
{

     var $Nachname;
     var $Vorname;

     function Mitarbeiter ($X_Nachname, $X_Vorname)
     {
            $this->Nachname = $X_Nachname;
            $this->Vorname = $X_Vorname;
     }

     function Datenausgabe ()
     {
            echo "Name : $Nachname;
            echo "Vorname : $Vorname;
     }

}

 

Eine Methode, die genauso heißt wie die Klasse selbst, wird als Konstruktor bezeichnet. Wenn man ein Objekt neu anlegt, wird automatisch die Konstruktor-Methode aufgerufen, um das neue Objekt zu initialisieren.

1.3 Neues Objekt anlegen

Nachdem wir nun die Klasse Mitarbeiter um den passenden Konstruktor erweitert haben, wollen wir direkt zur Erzeugung eines Objekts weitergehen, da man nun im besseren Zusammenhang die ganze Thematik besser versteht.

Um ein neues Objekt einer Klasse zu erschaffen, wird das Schlüsselwort new benutzt. Der Aufruf erfolgt wie folgt :

 

Allgemeine Syntax Beispiel-Code
$Handle = new Klassenname ("X", "Y"); $Neu = new Mitarbeiter ("Meyer", "Horst");

 

In dieser einen Zeile steckt auch schon die ganze Objekterschaffung. Die eingesetzte Variable $Neu wird als sogenanntes Objekt-Handle bezeichnet, über diese Variable wird nachher auf das erschaffene Objekt zugegriffen und hier sind alle Objektinformationen gespeichert.

Dem Schlüsselwort new folgt beim Aufruf der Klassenname, damit der Interpreter auch weiß, von welcher existierenden Klasse er eine Instanz (Objekt) erzeugen soll. Außerdem folgen in den Klammern die gewünschten Parameter, die bei der Objekterstellung mitgegeben werden sollen. Diese beiden Parameter werden bei der Erstellung des Objekts sofort an den Konstruktor der Klasse weitergegeben, der ja auch laut Definition in der Klasse zwei Parameter erwartet. Der erste Parameter "Meyer" ist in diesem Falle $X_Nachname und "Horst" ist $X_Vorname.

Innerhalb eines Konstruktor wird mit Hilfe des Schlüsselworts this des Operators -> auf die lokalen Eigenschaften (Variablen) des Objekts zugegriffen. Der Bezeichner this steht innerhalb des Funktionsrumpfes des Konstruktors also für die aufrufende Instanz selber. Hinter dem Operator -> folgt der Name der Eigenschaft (Variable) des Objekts (Achtung ! Ohne das $-Zeichen !), und durch den = Operator wird es mit dem Wert des Parameters initialisiert.

1.4 Vererbung

1.5 Nützliche Funktionen

PHP ist eine wichtige Sprache zur Erzeugung dynamischer Websites und zur Erstellung wichtiger Skripte. Um PHP in seiner vollen Vielfalt nutzen zu können, kann sich der Programmierer an einem riesigen Pool von Hilfsfunktionen bedienen, die ihm lästige Programmierarbeiten abnehmen können und seine PHP-Skripte weitaus lesbarer und besser wartbar machen.

Doch welche Funktionen stellt PHP denn eigentlich standardmäßig zur Verfügung und wie nutzt man sie. Dieser Frage wollen wir in diesem Abschnitt einmal nachgehen. Aufgeführt sind wichtige Funktionen aus verschiedenen Einsatzbereichen mit der allgemeinen Syntax, einer Beschreibung und einem Beispiel-Code.

Nochmal kurz zu Funktionen allgemein : Bei Funktionen gibt es meist die Möglichkeit, ihnen Parameter in der dafür vorgesehenen Klammer mitzugeben. Dieser Parameter können Zeichenketten (in Anführungszeichen gesetzt) oder Zahlen sein, man kann Funktionen als Parameter aber auch genauso gut Variablen ($Variable) mitgeben. Die Parameter in der Klammern werden durch Kommata voneinander getrennt. Bei der allgemeinen Syntax ist außerdem beschrieben, von welchem Datentyp der jeweilige Parameter sein muss, z.B. muss der Parameter Monat eine Zahl sein (int). Jede Funktion liefert einen Rückgabewert oder auch Ergebniswert zurück, Rückgabewert dann wenn eine Return-Anweisung in der Funktion aufgeführt ist. Wenn dies nicht der Fall ist, gibt die Funktion entweder True oder False zurück, je nachdem ob sie fehlerhaft oder nicht gelaufen ist. Diesen Ergebniswert kann man gut in einer Variablen speichern, hier zu sehen im Beispiel-Code.

 

Datums- und Zeitfunktionen :

checkdate()

 

Allgemeine Syntax Beispiel-Code
checkdate (int Monat, int Tag, int Jahr); $Check = checkdate (10, 23, 1977);
Beschreibung der Funktion
Sinn dieser Funktion checkdate ist es, ein Datum auf seine Gültigkeit zu überprüfen. Als 3 Parameter werden der Funktion Monat, Tag und Jahr übergeben. Ist das Datum der Parameter gültig, wird True, ansonsten wird False zurückgegeben.  $Check = true;

 

date()

 

Allgemeine Syntax Beispiel-Code
date (string Format [, int timestamp] ); $Datum_heute = date ("d M Y");
$Datum2 = date ("Y-m-d H:i:s");
Beschreibung der Funktion
Mit date() hat man entweder die Möglichkeit, die aktuelle Zeit zu formatieren (ohne den Parameter timestamp) oder eine Zeitangabe zu formatieren bzw. auszuwerten (mit dem zusätzlichen Parameter timestamp).

Der Parameter Format ist notwendig und legt fest, wie die Zeit formatiert bzw. dargestellt werden soll, es gibt viele Möglichkeiten hierzu. 

Ein paar wichtige Formatierungen sind hier aufgelistet :

d - Tag des Monats (01-31)
D - Tag der Woche (3stellig)
F - Monatsangabe (ausgeschr.)
h - Stunde im 12-Std.-Format
H - Stunde im 24-Std.-Format
i - Minute ( 00 - 59 )
m - Monat ( 01 -12 )
M - Monat (3stellig ausgeschr.)
s - Sekunden ( 00 - 59 )
t - Anzahl der Tage im Monat
w - Wochentag ( 0 (So) - 6 (Sa). )
Y - Jahr (vierstellig -> 2003 )
y - Jahr ( zweistellig -> 03 )

$Datum_heute = "23 Jan 2003";

$Datum2 = "2003-01-23 17:44:12";

 

DIESER WORKSHOP WIRD IN KÜRZE WEITER FORTGESETZT !!!

 


© copyright 2003 / Helge Wiemann