PHP Comparison between double, triple equals with useful functions
Here's a quick table that will help you find out quickly how PHP compares and use is types.
Functions comparison:
expression | gettype() | empty() | is_null() | isset() | boolean test: if($x) |
$x = '' | string | TRUE | FALSE | TRUE | FALSE |
$x = NULL | NULL | TRUE | TRUE | FALSE | FALSE |
$x = array() | array | TRUE | FALSE | TRUE | FALSE |
$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 = '90' | string | 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 = 'awesome' | string | FALSE | FALSE | TRUE | TRUE |
$x = 'TRUE' | string | FALSE | FALSE | TRUE | TRUE |
$x = 'FALSE' | string | FALSE | FALSE | TRUE | TRUE |
$x is undefined | NULL | TRUE | TRUE | FALSE | FALSE |
Comparison using ==
| TRUE | FALSE | 1 | 0 | -1 | '1' | '0' | '-1' | NULL | array() | string |
TRUE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE |
FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE |
1 | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE |
0 | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | TRUE |
-1 | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE |
'1' | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE |
'0' | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE |
'-1' | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE |
NULL | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE |
array() | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE |
'string' | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE |
Comparison using ===
| TRUE | FALSE | 1 | 0 | -1 | '1' | '0' | '-1' | NULL | array() | string |
TRUE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE |
FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE |
1 | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE |
0 | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE |
-1 | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE |
'1' | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE |
'0' | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE |
'-1' | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE |
NULL | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE |
array() | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE |
'string' | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE |