PHP中empty,isset,is_null用法和区别
1.empty用法
boolempty(mixedvar)
如果var是非空或非零的值,则empty()返回FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var$var;以及没有任何属性的对象都将被认为是空的,如果var为空,则返回TRUE
2.isset()
isset--检测变量是否设置
描述
boolisset(mixedvar[,mixedvar[,...]])
如果var存在则返回TRUE,否则返回FALSE。
如果已经使用unset()释放了一个变量之后,它将不再是isset()。若使用isset()测试一个被设置成NULL的变量,将返回FALSE。同时要注意的是一个NULL字节("0")并不等同于PHP的NULL常数。
注意:如果变量不存在,isset()和empty()都不会报错;is_null(),is_numeric()会报错
如何区别如下数组中[0,'',null]三个元素?(1)区别0:
$a=0; isset($a)&&is_numeric($a)===true
(2)区别''
$a=''; empty($a)&&$a===''
(3)区别null
$a=null; is_null($a);
另外在做表单提交的时候可能经常要检测一个变量是否存在,假如$_REQUEST['status']=0;使用empty($_REQUEST['status'])返回true,但是使用isset($_REQUEST['status'])判断就不是空
3.is_null():
boolis_null(mixed$var) (php.net官方文档的函数定义)
当参数满足下面三种情况时,is_null()将返回TRUE,其它的情况就是FALSE
1、它被赋值为NULL
2、它还没有赋值
3、它未定义,相当于unset(),将一个变量unset()后,不就是没有定义吗
让我们来看一些例子:
$myvar=NULL; var_dump(is_null($myvar));//TRUE $myvar1; var_dump(is_null($myvar1));//TRUENotice:Undefinedvariable $num=520; unset($num); var_dump(is_null($num));//TRUENotice:Undefinedvariable var_dump(is_null($some_undefined_var));//TRUENotice:Undefinedvariable $myvar=0;is_null($myvar);//FALSE $myvar=FALSE;is_null($myvar);//FALSE $myvar='';is_null($myvar);//FALSE