Einführung

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.

Tipp

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.

add a note add a note

User Contributed Notes 1 note

up
0
kuzawinski dot marcin_NOSPAM at gmail dot com
4 years ago
No, despite description here a `callable` still is not a a full-fledged primitive type in PHP.

<?php

function testFunc() { }

class
testClass {
   
    public function
__invole() { }
   
    public static function
testStaticMethod() { }
   
    public function
testMethod() { }
}

$o = new testClass();
$lambda = function() { };

$c1 = 'testFunc';
$c2 = ['testClass', 'testStaticMethod'];
$c3 = [$o, 'testMethod'];
$c4 = $lambda;
$c5 = $o;

var_dump(is_callable($c1));  // TRUE
var_dump(is_callable($c2));  // TRUE
var_dump(is_callable($c3));  // TRUE
var_dump(is_callable($c4));  // TRUE
var_dump(is_callable($c5));  // TRUE

var_dump(gettype($c1)); // string(6) "string"
var_dump(gettype($c2)); // string(5) "array"
var_dump(gettype($c3)); // string(5) "array"
var_dump(gettype($c4)); // string(6) "object"
var_dump(gettype($c5)); // string(6) "object"

?>
To Top