php中的类型比较
一、使用php函数
gettype()
获取变量类型,速度比较慢,建议使用is_*系列。
empty()
FALSE
。""
、0
、"0"
、NULL
、FALSE
、array()
、var $var 都返回True。
isset()
TRUE
,否则返回 FALSE
。对变量unset以后,将不再是isset。
if($x)
is_*
is_null:检测变量是否为 NULL
is_array:检测变量是否是数组
is_bool:检测变量是否是布尔型
is_double,is_float,is_real:检测变量是否是浮点
is_int,is_integer,is_long:检测变量是否是整数
is_numeric:检测变量是否为数字或数字字符串
is_object:检测变量是否是一个对象
is_resource:检测变量是否为资源类型
is_scalar:检测变量是否是一个标量,标量变量是指那些包含了 integer、float、string 或 boolean的变量,而 array、object 和 resource 则不是标量。
is_string:检测变量是否是字符串
表达式 | boolean : if($x) | ||||
$x = ""; | TRUE | FALSE | TRUE | FALSE | |
$x = NULL | TRUE | TRUE | FALSE | FALSE | |
var $x; | TRUE | TRUE | FALSE | FALSE | |
$x 从未定义 | TRUE | TRUE | FALSE | FALSE | |
$x = array(); | TRUE | FALSE | TRUE | FALSE | |
$x = false; | TRUE | FALSE | TRUE | FALSE | |
$x = true; | FALSE | FALSE | TRUE | TRUE | |
$x = 1; | FALSE | FALSE | TRUE | TRUE | |
$x = 42; | FALSE | FALSE | TRUE | TRUE | |
$x = 0; | TRUE | FALSE | TRUE | FALSE | |
$x = -1; | FALSE | FALSE | TRUE | TRUE | |
$x = "1"; | FALSE | FALSE | TRUE | TRUE | |
$x = "0"; | TRUE | FALSE | TRUE | FALSE | |
$x = "-1"; | FALSE | FALSE | TRUE | TRUE | |
$x = "php"; | FALSE | FALSE | TRUE | TRUE | |
$x = "true"; | FALSE | FALSE | TRUE | TRUE | |
$x = "false"; | 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 | 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 | FALSE | TRUE | FALSE |
"php" | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | 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 | 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 |
"php" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE |