Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Datentypen
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 



 

Typ-Umwandlung





Explizite Typumwandlung

Typ-Umwandlung in PHP funktioniert vielfach wie in C. Der Name des gewünsch-ten Typs wird vor der umzuwandelnden Variablen in Klammern gesetzt, dies wird auch als cast-Operation bezeichnet.


Beispiel



<?php
// Integer
$zahl 100;
// Float
$zahl = (float) $zahl;
// Ausgabe - float(100)
echo var_dump($zahl);
?>



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

Anstatt eine Variable in einen String umzuwandeln, können Sie die Variable auch in doppelte Anführungszeichen einschließen.

Beachten sie, dass Tabulatoren und Leerzeichen innerhalb der Klammern erlaubt sind. Deshalb sind die folgenden Beispiele identisch:



$zahl = (int) $zahl;
$zahl = ( int ) $zahl;



Es ist nicht immer offenkundig, was bei der Typ-Umwandlung geschieht. Sollten Sie eine Umwandlung eines Arrays zu einem String vornehmen oder erzwingen, ist das Ergebnis das Wort Array. Wenn Sie eine Umwandlung eines Objekts zu einem String vornehmen oder erzwingen, ist das Ergebnis das Wort Objekt.

Bei der Umwandlung einer skalaren oder String-Variablen zu einem Array wird die Variable das erste Element des Arrays:



<?php
$vorname 
'Caroline';
$personen = (array) $vorname;
// Ausgabe - Caroline
echo $personen[0];
?>



Sobald eine skalare oder String-Variable in ein Objekt gewandelt wird, wird die Variable zu einem Attribut des Objekts; der Eigenschafts-Name wird 'scalar':



<?php
$vorname 
'Caroline';
$obj = (object) $vorname;
// Ausgabe - Caroline
echo $obj->scalar;
?>



Bei der Umwandlung sollten Sie berücksichtigen, dass nicht sämtliche Richtungen sinnvoll sind. In der folgenden Tabelle stellen wir Ihnen sinnvolle mögliche Kombinationen vor.


ZieltypSinnvolle QuelltypenUnwandlungsprinzip
integerdoubleDezimale werden abgeschnitten (keine Rundung)
intstringWird keine Zahl erkannt, wird 0 zurückgegeben
doubleintegerunverändert
realstringWird keine Zahl erkannt, wird 0 zurückgegeben
stringintegerGibt die Zahl als Zeichenkette zurück
doubleGibt die Zahl als Zeichenkette zurück
arrayobjectWird direkt umgewandelt
integerEs entsteht ein Array mit einem Element vom Ursprungstyp
stringEs entsteht ein Array mit einem Element vom Ursprungstyp
doubleEs entsteht ein Array mit einem Element vom Ursprungstyp
objectarrayWird direkt umgewandelt
integerEs entsteht ein Objekt mit einer Eigenschaft, die durch die Variable repräsentiert wird.
stringEs entsteht ein Objekt mit einer Eigenschaft, die durch die Variable repräsentiert wird.
doubleEs entsteht ein Objekt mit einer Eigenschaft, die durch die Variable repräsentiert wird.



Zeichenkettenkonvertierung

Bei der Umwandlung von Zeichenketten wendet PHP bestimmte Regeln an. Mit deren Kenntnis können Sie das Ergebnis voraussagen und von der Umwandlung sicher Gebrauch machen:
. integer entsteht, wenn die Zeichenkette mit einem gültigen numerischen Zeichen (Ziffer, Plus oder Minus) beginnt und dahinter nicht die Zeichen . , e oder E folgen. Ist der erste Teil der Zeichenkette ein gültiger Ausdruck, wird der Rest ignoriert.
. float (double) entsteht, wenn die Zeichenkette mit einem gültigen numerischen Zeichen (Ziffer, Plus oder Minus) beginnt und dahinter die Zeichen . , e oder E folgen. Ist der erste Teil der Zeichenkette ein gültiger Ausdruck, wird der Rest ignoriert.

Hinweis: Die Zeichen e oder E dienen der Darstellung von Exponenten. Die Schreibweise Enn steht für x10nn. Generell dient der Punkt . als Dezimaltrennzeichen. Sie müssen dies bei Zuweisungen von Variablen berücksichtigen. Zur Ausgabe lassen sich Zahlen mit der Funktion number_format in die benötigte Form bringen (deutsche Schreibweise mit Komma).



Umwandlungsfunktion

Neben der Angabe des Datentyps als cast-Ausdruck kann auch die Funktion settype() eingesetzt werden. In manchen Ausdrücken wird eine Funktion erwartet, oft dient der Einsatz jedoch lediglich der besseren Lesbarkeit.

settype (string var, string type)

Der Typ der Variablen var wird festgelegt als type. Mögliche Werte für type sind:
. "integer"
. "double"
. "string"
. "array"
. "object"


Beispiel



<?php
$preis 
9.99;
settype($preis,"integer");
// Ausgabe (9)
echo $preis
?>





Beispiel



<?php
$preis 
9.99;
settype($preis,"object");
// Ausgabe Object id #1
echo $preis;
// Ausgabe (9.99)
echo $preis->scalar;
?>



Hinweis: Bei erfolgreicher Umwandlung, liefert settype() TRUE, sonst FALSE. So haben Sie die Möglichkeit auf eine fehlerhafte Umwandlung mit Hilfe einer Bedingung zu reagieren.



Beispiel



<?php
$preis 
9.99;
// Aushabe (9)
if (settype($preis,"integer") == 1) {
    echo 
$preis;
} else {
    echo 
"Fehler!";
}
?>



Sollte Ihnen settype() zu umständlich sein, können Sie auch die abgeleiteten val-Funktionen verwenden:
. intval(string var) - Diese Funktion wandelt in integer um.
. doubleval (string var) - Diese Funktion wandelt in double um.
. strval(string var) - Diese Funktion wandelt in string um.


Beispiel



<?php
$preis 
9.99;
// Aushabe (9)
echo intval($preis);
?>





 


Typen Besonderheiten
 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de