Type Juggling

Type Jugglin bezeichnet eine Art und Weise, wie eine Programmiersprache mit Variablen umgeht. In PHP ist es nicht möglich, eine Variable an einen bestimmten Typen fest zu binden. Ein sehr brauchbares Beispiel stellt der + Operator dar. Ist einer der Operanden ein float, so wandelt PHP die Variable - sei es nun int, string, double - in eine float Variable. Fakt ist, dass PHP eine Bindung an einen Typ nicht braucht und auch nicht unterstützt. Hier ein kleines Beispiel, welches das Type Juggling sehr gut demonstriert.

<?php
$foo = "0";  // $foo ist string (ASCII 48)
$foo += 2;   // $foo ist nun eine integer (2)
$foo = $foo + 1.3;  // $foo ist nun eine float (3.3)
$foo = 5 + "10 Little Piggies"; // $foo ist integer (15)
$foo = 5 + "10 Small Pigs";     // $foo ist integer (15)
?>

Aber auch hier sei Vorsicht geboten: Sobald ein Buchstabe zwischen diese Umwandlung kommt, sucht PHP nach der nächsten Zahl im String. Falls keiner gefunden wird, gibt PHP entweder eine Null (0) oder gar nichts zurück.

Type Casting

Das umwandeln von Variablen Typen (auch Type Caste genannt) funktioniert in PHP fast so wie in C:

  • (int), (integer) - Umwandlung zu Integer
  • (bool), (boolean) - Umwandeln nach Boolean
  • (float), (double) - Umwandlung nach float
  • (string) - Nach String umwandeln
  • (binary) - Umwandlung zu Binary-String(PHP 6.0 - dauert wohl noch)
  • (array) - Zu einem Array umwandeln
  • (object) - In ein Objekt (Klassen etc.) umwandeln
  • (null) - Umwandlung nach NULL

Siehe auch: Datentypen.

Im nächsten Kapitel wird gezeigt, wie Variablen mit Operatoren verknüpft werden.