Datentypen

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

Funktionen zur Typumwandlung und Erkennung

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

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;
?>

Leere Variablen, überprüfen, löschen

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);
?>
Übersicht weiter
Webdesign / PHP / mySQL / Dreamweaver MX Tipps
Copyright © Michael Albers
www.pastorpixel.de
www.pastorpixel.de PHP mySQL Tipps