天天看点

判断php变量是否为空/已定义

isset()

判断变量是否已设置

格式:bool isset ( mixed var [, mixed var [, ...]] )

1、若变量不存在则返回 FALSE

2、若变量存在且其值为NULL,也返回 FALSE

3、若变量存在且值不为NULL,则返回 TURE

同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE 

empty()

检查变量是否为空

格式:bool empty ( mixed var )

1、若变量不存在则返回 TRUE

2、若变量存在且其值为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 TURE

3、若变量存在且值不为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 FALSE 

is_null()

判断是否为null

$var = 0;
// 结果为 true,因为 $var 为空
if (empty($var)) {
    echo '$var is either 0 or not set at all';
}
// 结果为 false,因为 $var 已设置
if (!isset($var)) {
    echo '$var is not set at all';
}
$test=100;
echo is_null($test),is_null(100),is_null($b=100);
           

注:

1、empty,isset首先都会检查变量是否存在,然后对变量值进行检测。

      is_null 只是直接检查变量值,是否为null,因此如果变量未定义就会出现错误!

2、empty,isset输入参数必须是一个变量(php变量是以$字符开头的),

      is_null输入参数只要是能够有返回值就可以。(常量,变量,表达式等)。

      在php手册里面,对于他们解析是:empty,isset 是一个语言结构而非函数,因此它无法被变量函数调用。