PHP提供了三个用于测试变量值的函数,分别是:isset()、empty()、is_null(),这些函数的返回值均是布尔值,区别如下:
- isset()用于检测一个变量是否已经声明并且值不为NULL,即只能在变量值不是NULL是返回其值
- empty()用户检测一个变量是否为空,即当变量不是空字符串、false、空数组[array()]、NULL、0、''、被unset()后的变量是,返回真值
//PHP5.5之后,empty()可以接受任意类型的表达式
empty(myFunc()); //合法的
empty($var); //合法的
empty(0); //合法的
//PHP5.5之前,empty()只能接受变量值
empty($var); //合法的
empty(myFunc()); //不合法的
empty(0); //不合法的
- is_null()用于判断变量内容是否是NULL值,即返回真值的条件仅为变量是NULL值。is_null()是isset()的反函数,区别是isset()函数可以应用到未知变量,而is_null()只能针对已声明变量
变量值($var) | isset($var) | empty($var) | is_null($var) |
---|---|---|---|
"" (空字符串) | bool(true) | bool(true) | |
" " (空格) | bool(true) | ||
FALSE | bool(true) | bool(true) | |
TRUE | bool(true) | ||
array() (空数组) | bool(true) | bool(true) | |
NULL | bool(true) | bool(true) | |
"0" (字符串) | bool(true) | bool(true) | |
0 (整型值) | bool(true) | bool(true) | |
0.0 (浮点值) | bool(true) | bool(true) | |
NULL byte ('\0') | bool(true) | ||
var $var; (变量声明,没赋值) | bool(true) | bool(true) |