Datentypen


Datentypen in PHP

Daten können in PHP vom Typ Zahl, Zeichenkette, Variable, Array oder Wahrheitswert sein. Je nach Typ werden die Daten anders angesprochen und es steht jeweils ein Satz von PHP-Befehlen zur Arbeit mit den jeweiligen Typen zur Verfügung. Die Datentypen spiegeln die Grundaufgaben wider, die es mit PHP zu bewältigen gilt: rechnen, speichern, überprüfen und einlesen beziehungsweis ausgeben.

Zahlen
Gerechnet wird mit Zahlen. Diese können als ganze- oder als Kommazahlen vorkommen. Zahlen brauchen in PHP, anders als Zeichenketten, nicht in Anführungszeichen („…“) gesetzt zu werden. Mit einer Reihe von PHP-Befehlen kann man Zahlen auf unterschiedliche Weise manipulieren.

<?php
//Zahlen und Berechnungen können ohne Anführungszeichen stehen
$zahl = 3;
$summe = $zahl * 2;
echo $summe;
//angezeigt wird 6
?>

Zeichenketten
Alles, was in ein PHP eingelesen oder von PHP ausgegeben wird und nicht gerade eine Zahl oder ein Wahrheitswert ist, nennt man Zeichenkette. Zeichenketten stehen immer in Anführungszeichen („…“). Sie können entweder direkt ausgegeben oder aber in einer Variablen für die spätere Ausgabe zwischengespeichert werden. Auch Zeichenketten können mit Hilfe vordefierter Funktionen auf mannigfache Art manipuliert werden. Will man in PHP eine Zeichenkette direkt anzeigen, stehen die Befehle „echo“ und „print“ zur Verfügung.

<?php
echo „Diese Zeichenkette wird ausgegeben“;
print „Eine Zeichenkette kann auch mit \“print\“ ausgegeben werden“;
?>

„print“ und „echo“
„echo“ und „print“ verhalten sich prinzipiell gleich, außer dass „print“ den Rückgabewert „1“ liefert. Bis auf eine kleine Zahl von Zeichen, die für PHP reserviert sind, können alle Zeichen einer Zeichenkette direkt ausgegeben werden. Zeichen, die in PHP benötigt werden, wie das Dollarzeichen „$“ oder die Anführungszeichen „, werden nur mit einem vorangestellten Backslash (\) als Zeichenkette interpretiert. Daneben gibt es noch Sonderzeichen, die sich nur im Quellcode, nicht aber im Browser bemerkbar machen, wie „\&nbsp;n“ für einen Zeileumbruch, „\&nbsp;t“ für den horizontalen Tabulator oder „\&nbsp;r“ für den Wagenrücklauf.

Variablen
Zahlen, Zeichenketten und Wahrheitswerte können in Variablen gespeichert und weiterverarbeitet werden. Variabel bedeutet veränderbar und darin liegt die besondere Funktion einer Variablen begründet: Sie kann nicht nur einen festen Wert speichern, ihr kann auch ein von einem Eingabewert oder einem Wahrheitswert abhängiger Wert zugeordnet werden.

In PHP werden Variablen mit einem führenden „$“ gekennzeichnet. Für die Benennung sind sämtliche englischen Buchstaben erlaubt sowie Ganzzahlen und der Unterstrich. Dabei unterscheidet PHP, ob ein Buchstabe groß- oder kleingeschrieben ist. Oft hat es sich bewährt, wenn man durchgehend kleinschreibt. Der Variablenname darf darüber hinaus nicht mit einer Zahl beginnen. Der Inhalt einer Variablen wird nach dem Gleichzeichen in Anführungsstrichen („…“) angegeben, wenn es sich um einen String (Wörter, Buchstaben etc.) handelt. Bei einer Zahl kann auf die Anführungszeichen verzichtet werden. Eine Variable kann an beliebiger Stelle im Code definiert und im Anschluss aufgerufen werden. Variablen können überschrieben werden, indem man sie unter demselben Namen neu definiert. Sollen sie in Funktionen gelten, müssen sie der Funktion übergeben werden. In Funktionen definierte Variablen gelten nur innerhalb der Funktion. Auch hier gibt es wieder eine Reihe von Befehlen für den Umgang mit Variablen.

Arrays
Ein Array ist eine Sammlung von Variablen ähnlichen Inhalts. Alle Variablen eines Arrays tragen den Namen des Arrays gefolgt von eckigen Klammern „[]“, die entweder leer sind oder eine jeweils unterschiedliche Zahl oder Zeichenkette (diese in Anführungszeichen) enthalten. Den Wert innerhalb der eckigen Klammern nennt man „key“ (engl. Schlüssel), den Variablenwert „value“ (engl. Wert). Ist der key-Wert leer, weist PHP ihm in der Reihenfolge der Variablendefinition einen Zahlenwert aufsteigend mit 0 beginnend zu.

Arrays können beliebig viele Elemente enthalten, die dann in Schleifen durchlaufen oder auch gezielt angesprochen werden können. Der große Nutzen eines Arrays liegt darin, dass man mit einem Satz von Variablen arbeiten kann, ohne ihre Zahl oder ihren Inhalt kennen zu müssen. Für die Arbeit mit Arrays gibt es eine Vielzahl von vordefinierten Routinen in PHP.

Wahrheitswerte
Gelegentlich will man den Programmverlauf vom Zustand einer Variablen abhängig machen. Dazu vergleicht man die Variable mit irgendetwas und erhält dann als Ergebnis „true“ oder „false“ (engl. wahr oder falsch). Diese Werte werden von PHP als „1“ und „0“ zurückgegeben. Man nennt solche Vergleiche „Fallunterscheidungen“.

Datentypen im Einsatz
Das folgende Beispiel gibt einen Einblick in den Umgang mit den verschiedenen Datentypen. Es soll eine Einladung an mehrere Leute verfasst werden. Die meisten können geduzt werden, „Maria“ und „Rita“ jedoch nicht.

<?php
$empfaenger[] = „Katja“;
$empfaenger[] = „Maria“;
$empfaenger[] = „Melanie“;
$empfaenger[] = „Susanne“;
$empfaenger[] = „Rita“;

foreach ($empfaenger as $value){
$anrede = „Dich“;
if (($value == „Maria“) or ($value == „Rita“)){
$anrede = „Sie“;
}
$anschreiben = „Liebe $value,
am 24. Mai feiere ich meinen 30 Geburtstag. Dazu möchte ich $anrede recht herzlich einladen. Die Party beginnt um 20 Uhr.“;
echo $anschreiben;
}
?>

Wir haben hier eine Liste von Damen, die angeschrieben werden sollen. Diese Liste ist als Array „$empfaenger“ angelegt. Dann folgt mit „foreach ()“ eine Schleife, in der jeder einzelne Wert des Arrays zunächst als Variable „$value“ zwischengespeichert wird. Mit dieser Variable wird in der Schleife gearbeitet. Dann wird mit „$anrede“ eine Standardanrede definiert, die sich nur dann ändert, wenn $value den Wert „Maria“ oder „Rita“ annimmt. Das wird in der Fallunterscheidung mit „if“ geprüft. Die passende Anrede wird dann in das Anschreiben „$anschreiben“ eingefügt und ausgegeben. Da wir hier fünf Empfänger haben, wird das Anschreiben insgesamt fünfmal ausgegeben.

Speichermanagement
Man sieht sehr schnell, welche Möglichkeiten Arrays beim Abarbeiten großer Listen bieten. Darin liegt jedoch auch ein Problem, denn Arrays belegen Arbeisspeicher auf dem Webserver. Enthält ein Array sehr viele Elemente und sollen mit diesen Elementen jeweils aufwendige Operationen angestellt werden, bricht der Server das Programm nach einer voreingestellten Zeit ab. Dem Einsatz von Arrays sind also technische Grenzen gesetzt. Zum guten Programmierstil und um ein Programm nicht unnötig zu verlangsamen gehört somit auch, Arrays und Variablen mit der Funktion „unset ()“ wieder zu löschen, sobald sie nicht mehr benötigt werden.

<?php
unset ($variable); //eine Variable wird gelöscht
unset ($array); //ein Array wird gelöscht
unset ($array[2]); //der dritte Wert eines Arrays wird gelöscht
unset ($variable, $array); //sowohl eine Variable als auch ein Array werden gelöscht
?>