Die folgenden Tabellen zeigen das Verhalten von Typen und Vergleichsoperatoren in PHP, sowohl für schwach und stark typisierte Vergleiche. Dieser Anhang steht im Zusammenhang mit dem Abschnitt zu Type juggling. Anregungen für diesen Abschnitt kamen aus verschiedenen Benutzerkommentaren und der Arbeit von » BlueShoes.
Bevor diese Tabellen verwendet werden ist es wichtig die Typen und ihre
Bedeutungen zu verstehen. "42" ist zum Beispiel ein
string, während 42 ein integer
ist. FALSE ist ein boolean, obwohl
"false" ein string ist.
Hinweis:
HTML-Formulare übergeben keine integer, float oder boolesche Werte, sie übertragen strings. Um herauszufinden, ob ein string numerisch ist kann man is_numeric() verwenden.
Hinweis:
Wenn man einfach
if ($x)verwendet, obwohl $x undefiniert ist, so wird ein Fehler der StufeE_NOTICEerzeugt. Verwenden sie stattdessen empty() oder isset() und/oder initialisiere sie die verwendeten Variablen.
Hinweis:
Einige numerische Operationen können ein Ergebnis erzeugen, welches durch die Konstante
NANrepresäntiert wird. Jeder schwach oder stark typisierte Vergleich dieses Wertes mit beliebigen anderen Werten, einschließlich der Konstante selbst, außer mitTRUE, wirdFALSEergeben (d.h.NAN != NANundNAN !== NAN). Beispiele für Operationen, dieNANergeben sind u.a.sqrt(-1),asin(2), undacosh(0).
| Ausdruck | gettype() | empty() | is_null() | isset() | boolean : if($x) |
|---|---|---|---|---|---|
$x = ""; |
string | TRUE |
FALSE |
TRUE |
FALSE |
$x = null; |
NULL | TRUE |
TRUE |
FALSE |
FALSE |
var $x; |
NULL | TRUE |
TRUE |
FALSE |
FALSE |
| $x ist undefiniert | NULL | TRUE |
TRUE |
FALSE |
FALSE |
$x = array(); |
array | TRUE |
FALSE |
TRUE |
FALSE |
$x = array('a', 'b'); |
array | FALSE |
FALSE |
TRUE |
TRUE |
$x = false; |
boolean | TRUE |
FALSE |
TRUE |
FALSE |
$x = true; |
boolean | FALSE |
FALSE |
TRUE |
TRUE |
$x = 1; |
integer | FALSE |
FALSE |
TRUE |
TRUE |
$x = 42; |
integer | FALSE |
FALSE |
TRUE |
TRUE |
$x = 0; |
integer | TRUE |
FALSE |
TRUE |
FALSE |
$x = -1; |
integer | FALSE |
FALSE |
TRUE |
TRUE |
$x = "1"; |
string | FALSE |
FALSE |
TRUE |
TRUE |
$x = "0"; |
string | TRUE |
FALSE |
TRUE |
FALSE |
$x = "-1"; |
string | FALSE |
FALSE |
TRUE |
TRUE |
$x = "php"; |
string | FALSE |
FALSE |
TRUE |
TRUE |
$x = "true"; |
string | FALSE |
FALSE |
TRUE |
TRUE |
$x = "false"; |
string | FALSE |
FALSE |
TRUE |
TRUE |
TRUE |
FALSE |
1 |
0 |
-1 |
"1" |
"0" |
"-1" |
NULL |
array() |
"php" |
"" |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
1 |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
0 |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
-1 |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
"1" |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
"0" |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
"-1" |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
NULL |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
array() |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
FALSE |
"php" |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
"" |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
1 |
0 |
-1 |
"1" |
"0" |
"-1" |
NULL |
array() |
"php" |
"" |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
TRUE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
1 |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
0 |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
-1 |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
"1" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
"0" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
"-1" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
NULL |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
array() |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
"php" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
"" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |