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 das o.a. Beispiel so aussieht, als ob $a ein Array wird,
dessen erstes Element ein 'f' enthält, bedenken Sie folgendes:
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 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':