Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Sprachelemente und Syntax  Teil von  Datentypen
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++



:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

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

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Typumwandlung




Explizite Typumwandlung

Typumwandlung in PHP funktioniert oft wie in C. Der Name des gewünschten 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 Typumwandlung 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 Stringvariablen 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 Stringvariable in ein Objekt gewandelt wird, wird die Variable zu einem Attribut des Objekts; der Eigenschaftsname 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 stelle ich Ihnen sinnvolle mögliche Kombinationen vor.

ZieltypSinnvolle QuelltypenUnwandlungsprinzip
integer
int
doubleDezimale werden abgeschnitten (keine Rundung).
stringWird keine Zahl erkannt, wird 0 zurückgegeben.
double
real
integerunverändert
stringWird 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 und 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 mithilfe einer Bedingung zu reagieren.

Beispiel

<?php
$preis = 9.99;
// Ausgabe (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;
// Ausgabe (9)
echo intval($preis);
?>



 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


Microsoft Deutschland GmbH
twosteps.net - ...Premium-Webhosting
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2009 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt