Jeder einzelne Ausdruck in PHP hat in Abhängigkeit von seinem Wert einen der folgenden internen Typen:
PHP ist eine dynamisch typisierte Sprache, was bedeutet, dass es standardmäßig nicht notwendig ist, einer Variablen einen Typ zuzuweisen, weil dieser zur Laufzeit bestimmt wird. Mit Hilfe von Typ-Deklarationen ist es jedoch möglich, einige Aspekte der Sprache statisch zu typisieren.
Durch Typen wird die Art der Operationen, die mit ihnen durchgeführt werden können, eingeschränkt. Wenn jedoch ein Ausdruck oder eine Variable in einer Operation verwendet wird, die ihr Typ nicht unterstützt, wird PHP versuchen, den Wert mittels Typ-Umwandlung (sog. Type Juggling, Typ-Jonglage) in einen Typ zu überführen, der die Operation unterstützt. Dieser Prozess hängt von dem Kontext ab, in dem der Wert verwendet wird. Weitere Informationen hierzu sind im Abschnitt über Typ-Umwandlung zu finden.
Die Tabellen mit Vergleichen von PHP-Typen können ebenfalls nützlich sein, da sie verschiedene Beispiele für den Vergleich zwischen Werten verschiedener Typen enthalten.
Hinweis: Mit einer Typ-Zuweisung kann man erzwingen, dass ein Ausdruck nach einem bestimmten Typ ausgewertet wird. Außerdem kann eine Variable mit Hilfe der Funktion settype() direkt auf einen bestimmten Typ gesetzt werden.
Um den Wert und den Typ eines
Ausdrucks zu ermitteln, kann
die Funktion var_dump() verwendet werden. Den Typ eines
Ausdrucks erhält man mit der
Funktion get_debug_type(). Um jedoch zu prüfen, ob ein
Ausdruck von einem bestimmten Typ ist, sollten stattdessen die
is_type
-Funktionen verwendet
werden.
<?php
$a_bool = true; // Typ bool (Wahrheitswert)
$a_str = "foo"; // Typ string (Zeichenkette)
$a_str2 = 'foo'; // Typ string (Zeichenkette)
$an_int = 12; // Typ int (Ganzzahl)
echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";
// Falls es ein Integer ist, erhöhe ihn um vier
if (is_int($an_int)) {
$an_int += 4;
}
var_dump($an_int);
// Falls $a_bool ein String ist, gib ihn aus
if (is_string($a_bool)) {
echo "String: $a_bool";
}
?>
Das oben gezeigte Beispiel erzeugt mit PHP 8 folgende Ausgabe:
bool string int(16)
Hinweis: Die Funktion get_debug_type() steht erst seit PHP 8.0.0 zur Verfügung. Davor kann stattdessen die Funktion gettype() verwendet werden, die jedoch nicht die kanonischen Typnamen verwendet.