isset()、empty()、 is_null()
isset() — 检测变量是否设置。
bool isset ( mixed $var [, mixed $... ] );
// 检测变量是否设置,并且不是 NULL。
// 如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。
// 若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。
// 同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。
例:
$foo = NULL;
var_dump(isset($foo)); // FALSE
注意:
$foo = [NULL];
var_dump(isset($foo[0])); // FALSE
$foo = ['NULL'];
var_dump(isset($foo[0])); // TRUE
$test = 'aaaaaa';
unset($test);
var_dump(isset($test)); // FALSE
empty() 函数用于检查一个变量是否为空。
bool empty ( mixed $var );
// empty() 并不会产生警告,哪怕变量并不存在。 这意味着 empty() 本质上与 !isset($var) || $var == false 等价。
// 当 var 存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE。
//以下的变量会被认为是空的:
"" (空字符串)
0 (作为整数的0)
0.0 (作为浮点数的0)
"0" (作为字符串的0)
NULL
FALSE
array() (一个空数组)
$var; (一个声明了,但是没有值的变量)
is_null() — 检测变量是否为 NULL
bool is_null ( mixed $var );
// 如果 var 是 null 则返回 TRUE,否则返回 FALSE。
// 只有当值为NULL的时候,才会返回TRUE;
// 当值为‘’的时候,返回FALSE;
综上所述:PHP开发过程中,isset()可以用于判断数组中的元素是否存在,可以判断多维数组;empty()可以用于判断变量是否为空,或者判断数组中的某一元素是否为空,但是使用empty()判断多维数组的时候,建议先使用isset()判断下标是否存在;is_null()用于判断变量是否为NULL,只针对NULL有效。