The PHP Documentation Group has now added the Appendix K. PHP type comparison tables to the official PHP manual. Empty() & Co, Special ValuesNote: empty() and isSet() don't give a warning when the variable has not been defined before. |
| gettype() | is_null() | isSet() | (bool) |
$x = ""; | string | false | true | false |
$x = null; | NULL | true | false | false |
var $x; (not set) | NULL | true | false | false |
$x = array(); | array | false | true | false |
$x = false; | boolean | false | true | false |
$x = 15; | integer | false | true | true |
$x = 1; | integer | false | true | true |
$x = 0; | integer | false | true | false |
$x = -1; | integer | false | true | true |
$x = "15"; | string | false | true | true |
$x = "1"; | string | false | true | true |
$x = "0"; | string | false | true | false |
$x = "-1"; | string | false | true | true |
$x = "foo"; | string | false | true | true |
$x = "true"; | string | false | true | true |
$x = "false"; | string | false | true | true |
comparison with ==
| true | false | 1 | 0 | -1 | "1" | "0" | "-1" | "1.3" | "1.30" | 1.3 | 1.30 | array() | "foo" | "" |
true | true | false | true | false | true | true | false | true | true | true | true | true | false | true | false |
false | false | true | false | true | false | false | true | false | false | false | false | false | true | false | true |
1 | true | false | true | false | false | true | false | false | false | false | false | false | false | false | false |
0 | false | true | false | true | false | false | true | false | false | false | false | false | false | true | true |
-1 | true | false | false | false | true | false | false | true | false | false | false | false | false | false | false |
"1" | true | false | true | false | false | true | false | false | false | false | false | false | false | false | false |
"0" | false | true | false | true | false | false | true | false | false | false | false | false | false | false | false |
"-1" | true | false | false | false | true | false | false | true | false | false | false | false | false | false | false |
"1.3" | true | false | false | false | false | false | false | false | true | true | true | true | false | false | false |
"1.30" | true | false | false | false | false | false | false | false | true | true | true | true | false | false | false |
1.3 | true | false | false | false | false | false | false | false | true | true | true | true | false | false | false |
1.30 | true | false | false | false | false | false | false | false | true | true | true | true | false | false | false |
array() | false | true | false | false | false | false | false | false | false | false | false | false | true | false | false |
"foo" | true | false | false | true | false | false | false | false | false | false | false | false | false | true | false |
"" | false | true | false | true | false | false | false | false | false | false | false | false | false | false | true |
comparison with ===
| true | false | 1 | 0 | -1 | "1" | "0" | "-1" | "1.3" | "1.30" | 1.3 | 1.30 | array() | "foo" | "" |
true | true | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
false | false | true | false | false | false | false | false | false | false | false | false | false | false | false | false |
1 | false | false | true | false | false | false | false | false | false | false | false | false | false | false | false |
0 | false | false | false | true | false | false | false | false | false | false | false | false | false | false | false |
-1 | false | false | false | false | true | false | false | false | false | false | false | false | false | false | false |
"1" | false | false | false | false | false | true | false | false | false | false | false | false | false | false | false |
"0" | false | false | false | false | false | false | true | false | false | false | false | false | false | false | false |
"-1" | false | false | false | false | false | false | false | true | false | false | false | false | false | false | false |
"1.3" | false | false | false | false | false | false | false | false | true | false | false | false | false | false | false |
"1.30" | false | false | false | false | false | false | false | false | false | true | false | false | false | false | false |
1.3 | false | false | false | false | false | false | false | false | false | false | true | true | false | false | false |
1.30 | false | false | false | false | false | false | false | false | false | false | true | true | false | false | false |
array() | false | false | false | false | false | false | false | false | false | false | false | false | true | false | false |
"foo" | false | false | false | false | false | false | false | false | false | false | false | false | false | true | false |
"" | false | false | false | false | false | false | false | false | false | false | false | false | false | false | true |