by pir187 » 24. October 2003 18:23
probier mal:
$zahl=45.67;
$string_aus_zahl=(string)$zahl;
ein expliziter cast hat schon manchmal geholfen, ob er dies auch jetzt tut, wäre zu testen!
so long, pir187
ausschnitt aus dem php bigmanual:
Umwandlung von Zeichenketten / Strings
Sobald ein String als Zahlenwert angesehen wird, wird der resultierende Wert und Typ wie folgt festgelegt:
Der String wird als double angesehen, wenn er eines der Zeichen '.', 'e', oder 'E' enthält. Ansonsten wird er als Integer-Wert interpretiert.
Der Inhalt wird durch den Anfangsteil des Strings vorgegeben. Sofern der String mit numerischen Daten beginnt, wird ein Zahlen-Wert angenommen. Andererseits kann der Wert auch 0 (Null) sein. Gültig sind auch Werte mit einem optionalen Vorzeichen, gefolgt von einer oder mehreren Zahlen (optional mit einem Dezimalpunkt). Wahlweise kann auch ein Exponent angegeben werden. Dieser besteht aus einem 'e' oder 'E', gefolgt von einer oder meheren Zahlen.
Sobald der erste Ausdruck ein String ist, hängt der Typ der Variablen vom zweiten Ausdruck ab.
$foo = 1 + "10.5"; // $foo ist double (11.5)
$foo = 1 + "-1.3e3"; // $foo ist double (-1299)
$foo = 1 + "bob-1.3e3"; // $foo ist ein Integer-Wert (1)
$foo = 1 + "bob3"; // $foo ist ein Integer-Wert (1)
$foo = 1 + "10 Small Pigs"; // $foo ist ein Integer-Wert (11)
$foo = 1 + "10 Little Piggies"; // $foo ist ein Integer-Wert (11)
$foo = "10.0 pigs " + 1; // $foo ist ein Integer-Wert (11)
$foo = "10.0 pigs " + 1.0; // $foo ist double (11)
Mehr Informationen über solche Umwandlungen können sie im UNIX-Manual unter strtod(3) finden.
Wenn sie alle Beispiele dieses Abschnitts testen wollen, können sie sie per Cut und Paste in ihr Script übertragen und mit der folgenden Zeile selbst sehen, was passiert:
echo "\$foo==$foo; Typ ist " . gettype( $foo ) . "<br>\n";