|
400 357 345 +123 |
<?php $Var1 = "300"; $Var2 = "100 Birnen"; echo $Var1 + $Var2; echo "<p>"; echo $Var4 = (double)123 + "234 Euro"; echo "<p>"; echo $Var5 = (string)"345 +123"; ?> |
| integer/int | Ganzzahlen |
| double/real | Fließkommazahlen |
| string | Zeichenketten |
| array | Datenfelder (Arrays) |
| object | Objekte |
Php nimmt eine autoamtische Typenumwandlung vor, wenn Sie einer Variablen einen
Wert zuweisen, der nicht dem vorherigen Typ der Variablen entspricht. Das mag
unerfahrene Programmierern einfach vorkommen, kann aber auch zu Problemen führen,
da php eine ganz eigentümliche Strategie bei der Umwandlung verfolgt, z.B.:
<?php
$Var1 = "300";
$Var2 = "100 Birnen";
echo $Var1 + Var2;
?>
Diese Beispiel erzeugt einen Wert von 400 da php Var2 als numerischen Wert umwandelt,
denn es erkennt die Zahl am Anfang. Es würde sich jedoch anders verhalten,
wenn die Zahl hinter Birnen stehen würde.
Man kann die Typen umwandeln, da beispielsweise in Datenbanken Spalten einem bestimmten Datentyp zugeordnet sind. Außerdem erwarten viele Funktionen bestimmte Datentypen.
$Var1 = (double)123 + "234Euro";
$Var2 = (string) "345" +123;
also ergibt Var1 357 und Var2 345+123
| Funktion | Bedeutung |
| doubleval | Verwandelt einen Wert in den Typ double |
| intval | Verwandelt einen Wert in den Typ integer |
| strval | Verwandelt einen Wert in den Typ String |
| settype | Verwandelt einen Wert in einen beliebigen Typ |
| gettype | Ermittelt den aktuellen Typ einer Variablen |
Die Funktion settype verwandelt den Wert einer Variablen. Es werden 2 Argumente
benötigt: der Name der Variablen und der Wert in Anführungstrichen.
Mögliche Werte siehe oben erste Tabelle integer, double, string, array,
object
Die settype Funktion liefert den Wert true, wenn die Umwandlung erfolgreich
war.
settype($Preis, "double");
|
string double 100 |
<?php $Preis ="100 DM"; echo gettype($Preis); echo "<br>"; settype($Preis, "double"); gettype($Preis); echo "<br>"; echo $Preis; ?> |
Typenprüfung kann man mit speziellen Funktionen in einer if-Struktur machen.
| Funktion | Bedeutung |
| is_array | ermittelt, ob es sich um ein Array handelt |
| is_bool | ermittelt, ob es sich um einen Ausdruck vom Typ boolean handelt |
| is_double | ermittelt, ob es sich um einen Ausdruck vom Typ double handelt |
| is_float | ermittelt, ob es sich um einen Ausdruck vom Typ float handelt |
| is_integer | ermittelt, ob es cih um einen Ausdruck vom Typ integer handelt |
| is_numeric | ermittelt, ob es sich um einen numerischen Typ (integer, double) handelt |
| is_object | ermittelt, ob es sich um ein Objekt (eine Objektvariable) handelt |
| is_string | ermittelt, ob es sich um einen Ausdruck von Typ String handelt |
| MwSt in Euro = 25.9 | <?php $Preis = 185.00; if(is_double($Preis)) echo "MwSt in Euro = ", $Preis*0.14; ?> |
| Funktion | Bedeutung |
| empty | Prüft, ob einer Variablen noch kein Wert zugewiesen wurde oder ob die Variable den Wert 0 bzw. einen Leerstring enthält. |
| isset | Prüft, ob eine Varibale bereits existiert |
| unset | Löscht eine Variable. |
|
1 x1 1 x2 1 x3 1 x4 1 x5 |
<?php $x1; $x2 =0; $x3 = ""; $x4 = false; echo empty($x1)," x1<br>"; echo empty($x2)," x2<br>"; echo empty($x3)," x3<br>"; echo empty($x4)," x4<br>"; echo empty($x5)," x5<br>"; ?> |
Wie man sieht wird in all diesen Fällen der Wert true oder 1 durch empty zurückgegeben., sogar bei der Variablen x5, die noch gar nicht deklariert wurde. Mit isset($variablename) kann man überprüfen, ob eine Variable gesetzt wurde, mit unset($variablenname), wird eine Varibale gelöscht.
|
1wurde gesetzt |
<?php $y=0; echo isset($y),"wurde gesetzt<br>"; unset($y); echo isset($y); ?> |