Typen-Tricks
PHP
erfordert
(
bzw
.
unterstützt
)
keine
explizite
Typ-Definitionen
bei
der
Deklaration
von
Variablen
;
der
Typ
einer
Variablen
wird
durch
den
Zusammenhang
bestimmt
in
dem
die
Variable
benutzt
wird
.
Das
bedeutet
,
dass
bei
der
Zuweisung
einer
Zeichenkette
/
eines
Strings
zu
einer
Variablen
var
diese
Variable
var
zum
Typ
String
wird
.
Sollten
Sie
dananch
der
Variablen
var
einen
Integer-Wert
zuweisen
,
wird
sie
zu
einem
Integer-Typ
.
Ein
Beispiel
für
die
automatische
Typ-Konvertierung
von
PHP
ist
der
Plus-Operator
'
+
'
.
Ist
einer
der
zu
addierenden
Werte
vom
Typ
float
,
werden
alle
Werte
als
float-Typ
gbehandelt
.
Auch
das
Ergebnis
der
Addition
wird
vom
Typ
float
sein
.
Andernfalls
werden
die
Werte
als
integer
-Typen
angesehen
und
das
Ergebnis
wird
ebenfalls
vom
Typ
Integer
sein
.
Beachten
Sie
,
dass
hierdurch
NICHT
der
Typ
der
Operanden
selbst
beeinflusst
wird
;
der
Unterschied
liegt
einzig
und
allein
in
der
Auswertung
dieser
Operanden
.
Wenn
Ihnen
die
beiden
letzten
Beispiele
merkwürdig
erscheinen
,
beachten
Sie
die
String-Umwandlung
.
Wenn
Sie
die
Auswertung
einer
Variablen
als
einen
speziellen
Typ
erzwingen
wollen
,
beachten
sie
den
Abschnitt
in
Typ-Umwandlung
.
Wollen
Sie
den
Typ
einer
Variable
ändern
,
schauen
Sie
bei
settype(
)
nach
.
Um
die
Beispiele
dieses
Kapitels
auszuprobieren
,
können
Sie
die
Funktion
var_dump(
)
verwenden
.
Anmerkung
:
Das
Verhalten
einer
automatischen
Umwandlung
zum
Typ
Array
ist
zur
Zeit
nicht
definiert
.
Weil
PHP
die
Indizierung
innerhalb
von
Strings
mittels
der
gleichen
Syntax
wie
bei
der
Array-Indizierung
unterstützt
,
führt
das
o.a
.
Beispiel
zu
einem
Problem
:
Soll
$a
zu
einem
Array
werden
,
dessen
erstes
Element
ein
"
f
"
ist
oder
soll
"f
"
das
erste
Zeichen
des
Strings
$a
werden
?
Aus
diesem
Grund
ist
das
Ergebnis
der
automatischen
Umwandlung
seit
PHP
3.0.12
und
auch
in
PHP
4.0b3-RC4
nicht
definiert
.
Lösungen
werden
noch
dikutiert
.
Typ-Umwandlung
Typ-Umwandlung
in
PHP
funktioniert
vielfach
wie
in
C
:
Der
Name
des
gewünschten
Typs
wird
vor
der
umzuwandelnden
Variablen
in
Klammern
gesetzt
.
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
Anmerkung
:
Ansttat
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
:
Es
ist
nicht
immer
offenkundig
,
was
bei
der
Typ-Umwandlung
geschieht
.
Für
weitere
Informationen
schauen
Sie
unter
folgenden
Abschnitten
nach
:
Wenn
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
:
Sobald
eine
skalare
oder
String-Variable
in
ein
Objekt
gewandelt
wird
,
wird
die
Variable
zu
einem
Attribut
des
Objekts
;
der
Eigenschafts-Name
wird
'scalar
'
: