PHP ist eine serverseitige, in HTML eingebettete Scriptsprache, die Ihre Anwendung häufig auf sogenannten LAMP- Systemen findet. LAMP steht für Linux, Apache, MySQL, PHP und wird häufig für über Webinterface ansprechbare Datenbanken benutzt, z.B. Webshops. Aber die Sprache PHP hat noch andere interessante Fähigkeiten, die ich im weiteren kurz zusammenfassen möchte.
Der Code von PHP wird i.d.R. einfach in den HTML- Quellcode eingebettet. Um dies zu kennzeichnen, werden die Dateien mit einer anderen Dateiendung versehen (.php, .php3 oder phtml), was auch dem Webserver ermöglicht zu unterscheiden, in welchen Dateien er nach PHP- Scripten suchen soll. Darüber hinaus muss dem Webserver noch mitgeteilt werden welchen Ausdrücke er in der Datei interpretieren soll, müssen jeweils der Anfang und das Ende der PHP- Teils gekennzeichnet werden. Dafür gibt es drei Möglichkeiten:
<? PHP- Anweisungen; ?> <?php PHP- Anweisungen; ?>oder
<script language="php"> PHP- Anweisungen; </script>
Es bietet sich an die zweite Möglichkeit zu wählen, da diese XML- konforn ist.
Die Sprache PHP wurde haupsächlich von C beeinflusst. Anweisungen werden demzufolge mit einem Semikolon abgeschlossen.
Anweisung;
Die einfache Textausgabe ist unter PHP mit den Befehlen echo unter print möglich. Zur Textausgabe erwartet der echo- Befehl einen String, der in anführungszeichen steht. Es gibt zwei unterschiedliche Anführungszeichen, die einfachen (') und die doppelten ("). Bei den einfachen Anführungszeichen gibt der echo- Befehl die Zeile direkt aus, bei den doppelten Anführungszeichen hingegen, versucht er, die Zeile zu interpretieren. Zeilenumbrüche und Variablen werden so z.B. vom Befehl interprtiert und entsprechend ausgegeben.
Beispiele:$var=123; echo 'Die Variable $var hat den Wert 123 !\n'; // Gibt "Die Variable $var hat den Wert 123 !\n" aus echo "Die Variable $var hat den Wert 123 !\n"; // Gibt "Die Variable 123 hat den Wert 123 !" ausWill man von Anführungszeichen in einem String gebrauch machen, kann man diese Variante wählen:
echo "Say \"Hello World\" my friend"; // Gibt "Say "Hello World" my friend" aus
Neben dem echo- gibt es noch den print- Befehl. Der echo- Befehl ist ein internes Sprachkonstrukt, der print- Befehl hingegen ein Ausdruck (Expression). Dem echo- Befehl können mehrere Argumente, die allerdings nicht in Klammern stehen dürfen, übergeben werden, der print- Befehl erwartet ein Argument, das in Klammern steht.
Beispiele:$var1="Hello"; $var2="World"; print ($var1." ".$var2); // Gibt "Hello World" aus
Wertzuweisungen zu einer Variablen erreicht man unter PHP mit einem Gleicheitszeichen, z.B. so:
$var=20;
Mehr gibt es dazu i. M. nicht zu sagen.
Es gibt die folgenden zwei Möglichkeiten Kommentare in PHP- Code zu implementieren. Sie entsprechen genau den Möglichkeiten von C bzw. C++
/* Dies ist ein Kommentar, der sich über mehrere Zeilen erstreckt, entspricht C */ // Die ist ein Kommentar, der sich ausschliesslich über eine Zeile erstreckt, und entspricht C++
Alle Variablen werden unter PHP durch ein vorgestelltes '$' gekennzeichnet. Da es sich bei PHP nicht um ein streng- typisierte Programmiersprache handelt, müssen die Variablen nicht vorher definiert oder deklariert werden. PHP verwendet den Typ, den es für Richtig hält. Der Variablentyp kann auch bei der ersten Benutzung festgelegt werden, indem er in Klammmern angegeben wird.
Natürlich gibt es unter PHP auch Operatoren. Neben den unten aufgezeichten (Arithmetische-, String-, Logische-, und Vergleichoperatoren) gibt es noch die Bit- Operatoren, die für mich hier nicht weiter von interesse sind.
Beispiel: | Name: | Ergebnis: |
---|---|---|
$a + $b | Addition | Summe von $a und $b |
$a - $b | Subtraktion | Differenz von $a und $b |
$a * $b | Multiplikation | Produkt von $a und $b |
$a / $b | Division | Dividend von $a und $b |
$a % $b | Modulo | Rest der Division von $a und $b |
Beispiel: | Name: | Ergebnis: |
---|---|---|
$a . $b | Verbindung | Verbindet die beiden Strings $a und $b |
Beispiel: | Name: | Ergebnis: |
---|---|---|
$a and $b / $a && $b | UND | true, wenn $a und $b true sind |
$a or $b / $a || $b | ODER | true, wenn mindestens einer von $a oder $b true sind |
$a xor $b | X-ODER | true, wenn genau einer vorn $a oder $b true ist |
!$a | NICHT | true, wenn $a false ist |
Operator: | Bedeutung: |
---|---|
== | Gleich |
!= | Ungleich |
> | Größer |
< | Kleiner |
>= | Größer gleich |
<= | Kleiner gleich |
Hier eine Zusammenfassung wichtiger Befehle:
Will man eine Datei in das PHP- Dokument einfügen, benutzt man am besten den include- Befehl. Die Syntax des Befehls
lautet include ("Dateiname");. Die eingefügte Datei wird als HTML- Code interpretiert. Will man ausschließlich PHP-
Code einfügen muss am Anfang der Datei <?php und am Ende der Datei ?> stehen. Wenn include () in Verbindung mit
Schleifen eingesetzt werden soll, muss es immer in geschweiften Klammern stehen !
Die folgenden Datentypen sind unter PHP verfügbar:
Datentyp: | Verwendung: | Wertebereich: |
---|---|---|
Integer | ganzzahlen | |
Double / Float | reele Zahlen | |
Boolean | Wahrheitswerte | Erst ab PHP Version 4 |
String | Buchstaben- / Zeichenketten | |
Array | n- dimensionale Listen | |
Object |
Die IF- Schleife ist eines der wichtigsten Elemente der Programmierung. Die Syntax in PHP ist der in C identisch.
if (expr) statement;
if (expr) { statement 1; statement 2; statement n; }
Sollen Anweisungen in abhängigkeit von einer Bedingung alternativ ausgeführt werden, so kann man zusätzlich zum IF- Zweig einen ELSE- Zweig einfügen.
if (expr) statement; else statement;
Verfügt man über mehr als zwei alternativen, bietet sich die folgende Syntax der ELSE-IF- Schleife an.
if (expr) statement; elseif (expr) statement; else statement;
Eine WHILE- Schleife bietet sich an, falls die Anzahl der Schleifendurchläufe vor Begin der Schleife nicht bekannt ist. Solange die Bedingung (expr) erfüllt ist, wird die Anweisung in der Schleife ausgeführt. Falls die Bedingung von Anfang an nicht erfüllt ist, wird die Anweisung in der Schleife überhaupt nicht ausgeführt.
while (expr) { statement; }
Die DO-WHILE- Schleife unterliegt der gleichen Sturktur wie die WHILE- Schleife. Die Anweisungen werden jedoch wird mindestens einmal ausgeführt, erst dann wird die Bedingung überprüft. Trifft die Bedingung dann noch zu, wird die Schleife ein weiteres mal Ausgeführt. Triff die Bedingung nicht zu, terminiert die Schleife.
Steht die Anzahl der Schleifendurchläufe vor Begin der Schleife fest, eignet sich die FOR- Schleife. Die Syntax entspricht wieder der, der Programmiersprache C.
for (expr1;expr2;expr3;) { statement; }
Hinweis: Der erste Ausdruck (expr1) wird genau einmal, am Anfang ausgeführt. Damit initialisiert man die Variable. Der zweite Ausdruck (expr2) wird vor jedem Schleifendurchlauf überprüft. Dies ist die Lauf- bzw. Abbruchbedingung. Am Ende jedes Schleifendurchlaufs wird der dritte Ausdruck (expr3) ausgeführt.
Wie man eine Variable mit vielen Werten vergleichen, und in abhängigkeit von den Werten unterschiedlich Anweisungen ausführen, so ist die SWITCH- Anweisung der Variante mit vielen IF- Schleifen vorzuziehen.
switch (var) { case 0: statement; break; case 1: statement; break; case n: statement; break; }
Funktionen dienen den Zusammenfassen mehrerer Befehle zu einem Aufruf. Bei einigen Programmiersprachen findet eine Unterscheidung zwischen Funktionen, die einen Wert zurückgeben und solchen, die keinen Wert zurückgeben statt. PHP macht hier, genau wie C und C++, keinen Unterschied. Die Syntax lautet wie folgt:
function funktionsname ($arg_1, $arg_2, $arg_n) { echo "Beispielfunktion.\n"; return $retval; }
Die Funktion bekommt die Argumente 'arg_1' bis 'arg_n' übergeben und gibt den Wert der Variablen 'retval' zurück. Wird kein return in der Funktion benutzt, hat man dasselbe Verhalten wie bei Funktionen ohne Rückgabewert.
Normalerweise werden in PHP Werteparameter übergeben. Man kann jedoch auch Variablen- bzw. Referenzparameter übergeben. Variablenparameter werden mit einem '&' im Funktionskopf gekennzeichnet.
Hier nun die wichtigsten Funktionen für die Verbindung von MySQL und PHP:
mysql_connectint mysql_connect (string hostname, string username, string password);
Mit mysql_connect wird eine Verbindung zum Datenbank- Server hergestellt. Wenn der zurückgelieferte Wert positiv ist, verlief die Verbindung erfolgreich; bei Null gab es einen Fehler. Befinden sich Web- und Datenbank- Server auf dem gleichen System reich der Eintrag 'localhost' als hostname.
mysql_select_dbint mysql_select_db (string database_name, int link_identifier);
Mit mysql_select_db wird die Datenbank ausgewählt, auf die sich die Anfragen beziehen soll. Es wird entweder 'true' bei Erfolg oder 'false' bei einem Fehler zurückgegeben. Wird kein 'link_identifier' angegeben, wird die zuletzt geöffnete Verbindung zum Server genommen.
mysql_queryint mysql_query (string query, int link_identifier);
Die Funktion sendet die Befehlsfolge 'query' an den Datenbank- Server. Hier steht i. d. R. eine SQL- Anweisung in doppelten Anführungszeichen. Es wird ein Zeiger auf das Ergebnis (result pointer) zurückgegeben. Hat das Ergebnis den Wert 0 gab es einen Fehler.
mysql_closeint mysql_close (int link_identifier);
Die Funktion schließt eine bestehende Verbindung zum Server. Es wird entweder 'true' bei Erfolg oder 'false' bei einem Fehler zurückgegeben.