Typenumwandlung
Aus php bar
Inhaltsverzeichnis |
Typenumwandlung
(oder auch: Typenkonvertierung/casten)
Der Datentyp gibt an, welche Operationen mit den Operanden druchgeführt werden kann und stellt gleichzeitig den Wertebereich für die Variablen dar.
PHP ist keine typenstrenge Programmiersprache. D.h. dass sich der Wertebereich einer Variable beim Abarbeiten des Codes mehrfach ändern kann, ohne dass der Programmierer extra Anweisungen schreiben muss.
Datentypen im Überblick
| Datentyp | Bedeutung | Wertebereich |
|---|---|---|
| bool | Boolean | TRUE/1, FALSE/0 |
| integer/int | Ganzzahl | -2.147.482.648 bis +2.147.482.647 |
| float (double/real) | Fließkommazahl | ~1.7E-308 bis ~1.7E+308 |
| string | Zeichenkette | |
| array | Datenfeld (Arrays) | |
| object | Objekt | |
| Resource | ||
| NULL |
Boolean
Boolean ist der einfachste Datentyp. Er repräsentiert einen Wahrheitswert, der entweder über TRUE oder FALSE ausgedrückt wird. Auf die Groß- und Kleinschreibung wird hier nicht geachtet.
Dieser Datentyp wird üblicher Weise für Kontrollstrukturen wie IF/ELSE oder als Flag
verwendet.
Beispiel
$var1 = TRUE; $var2 = FALSE;
Typenkonvertierung nach Boolean
Bei der Typenkonvertierung nach Boolean muss man beachten, dass jeder Wert ungleich 0 oder NULL als TRUE behandelt wird.
$var1 = 1; $bo_var = (bool)$var1; //TRUE $var1 = 0; $bo_var = (bool)$var1; //FALSE $var1 = 4.5; $bo_var = (bool)$var1; //TRUE $var1 = ""; $bo_var = (bool)$var1; //FALSE
Integer
Integer umfasst alle ganzzahligen Werte innerhalb des Wertebreiches von -2.147.482.648 bis +2.147.482.647 . Vorzeichenlose Integer-Werte (unsigned Int) werden von PHP nicht unterstützt.
Mögliche Operationen sind: +, -, * Bei der Division von Integer-Werten wird das Ergebnis automatisch in Float umgewandelt.
Beispiel
$var1 = 123; $var2 = 567;
$i_ergebnis = (int)round($var2 / $var1);
Typenkonvertierung nach Integer
Bei der Umwandlung von Float nach Integer werden die Nachkommastellen ohne Warnung abgeschnitten. Dadurch können gerade bei komplexeren Berechnungen große Abweichungen entstehen. Wenn der umzuwandelnde Wert ausserhalb des Wertebereiches von Integer liegt, so ist das Ergebnis nicht definiert. Die Konvertierung von String nach Integer ist wenig sinnvoll, da der String scheinbar erst nach Boolean und erst danach zu Integer umgewandelt wird.
$var = (int)123.4; // = 123 $var = (integer)123.4; // = 123 $var = (int)123.78 // = 123 $var = (int)round(123.78) // = 124
Float
Beispiel
ToDo
Typenkonvertierung nach Float
ToDo
String
ToDo
Beispiel
ToDo
Typenkonvertierung nach String
ToDo
Array
ToDo
Beispiel
ToDo
Object
ToDo
Beispiel
ToDo
Resource
ToDo
Beispiel
ToDo
NULL
ToDo
Beispiel
ToDo
toto 13:45, 16. Feb 2007 (CET)

