Typen-Tricks
PHP erfordert (bzw. unterstützt) keine expliziten Typ-Definitionen
bei der Deklaration von Variablen; der Typ einer Variablen wird
durch den Zusammenhang bestimmt in dem die Variable benutzt wird.
Das bedeutet, dass bei der Zuweisung eines Strings zu einer
Variablen $var diese Variable
$var zum Typ String wird. Sollten Sie
dananch der Variablen $var einen
Integer-Wert zuweisen, wird sie zu einem Integer-Typ.
Ein Beispiel für die automatische Typ-Konvertierung von PHP ist
der Plus-Operator '+'. Ist einer der zu addierenden Werte vom Typ
float, werden alle Werte als float-Typ behandelt.
Auch das Ergebnis der Addition wird vom Typ float sein.
Andernfalls werden die Werte als integer-Typen
angesehen und das Ergebnis wird ebenfalls vom Typ Integer sein.
Beachten Sie, dass hierdurch NICHT der Typ der Operanden selbst
beeinflusst wird; der Unterschied liegt einzig und allein in der
Auswertung dieser Operanden.
Wenn Ihnen die beiden letzten Beispiele merkwürdig erscheinen,
beachten Sie die Umwandlung von Strings
in Zahlen.
Wenn Sie die Auswertung einer Variablen als einen speziellen Typ
erzwingen wollen, beachten sie den Abschnitt in Typ-Umwandlung. Wollen
Sie den Typ einer Variable ändern, schauen Sie bei
settype() nach.
Um die Beispiele dieses Kapitels auszuprobieren, können Sie die
Funktion var_dump() verwenden.
Anmerkung:
Das Verhalten einer automatischen Umwandlung zum Typ Array ist
zur Zeit nicht definiert.
Weil PHP (aus historischen Gründen) die Indizierung innerhalb von
Strings mittels der gleichen Syntax wie bei der Array-Indizierung
unterstützt, führt das o.a. Beispiel zu einem Problem: Soll $a zu
einem Array werden, dessen erstes Element ein "f" ist oder soll
"f" das erste Zeichen des Strings $a werden?
Die aktuellen Versionen von PHP interpretieren die zweite
Anweisung als Stringversatz-Kennung, weshalb $a zu "f" wird. Das
Ergebnis dieser automatischen Umwandlung sollte jedoch als
undefiniert betrachtet werden. Mit PHP 4 wurde die neue Syntax
mit geschweiften Klammern eingeführt um auf Zeichen in einem
String zuzugreifen. Verwenden Sie statt der oben vorgestellten
Syntax folgende:
Für weitere Informationen siehe Abschnitt Zugriff auf Zeichen in
Strings.
Typ-Umwandlung
Typ-Umwandlung in PHP funktioniert vielfach wie in C: Der Name
des gewünschten Typs wird vor der umzuwandelnden Variablen in
Klammern gesetzt.
Folgende Umwandlungen sind möglich:
(int), (integer) - nach integer (bool), (boolean) - nach boolean (float), (double), (real) - nach float (string) - nach string (array) - nach array (object) - Wandlung zum Objekt
Beachten sie, dass Tabulatoren und Leerzeichen innerhalb der
Klammern erlaubt sind. Deshalb sind die folgenden Beispiele
identisch:
Anmerkung:
Anstatt eine Variable in einen String umzuwandeln, können Sie
die Variable auch in doppelte Anführungszeichen einschließen.
Es ist nicht immer offenkundig, was bei der Typ-Umwandlung
geschieht. Für weitere Informationen schauen Sie unter folgenden
Abschnitten nach:
|