经常会用的空值判断,但总是搞不清楚其微乎其微的区别,在此好好总结总结:
1.empty 检查一个变量是否为空
boolean emptye( mixed $var)
如果var是非空或非零的值,则empty()返回false。换句话说,"", 0, "0", null, false, array(), var $var;以及没有任何属性的对象都将被认为是空的,如果var为空,则返回true。
empty() 只检测变量,检测任何非变量的东西都将导致解析错误,换句话说,后边的语句将不会起作用:empty(addslashes($name));
2.isset 检查变量是否设置,并且不是null
boolean isset(mixed $var [,mixed $...])
返回值 : 如果var存在并且值不是null则返回true,否则返回false。
如果已经使用unset()释放了一个变量后,它将不再是isset()。若使用isset()测试一个被设置成null的变量,将返回false。同时要注意的是一个null字节("\0")并不等同于PHP的NULL常数
警告:isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可以使用defined()函数。
3.unset 释放(销毁)给定的变量
在函数中的行为会依赖于想要销毁的变量的类型而有所不同。
如果在函数中unset()一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用unset()之前一样的值。
4.is_null 检测变量是否为null
boolean is_null(mixed $var)
如果var是null 则返回true,否则返回false.
查看null类型获知变量什么时候被认为是null,而什么时候不是。
NULL 特殊的null值表示一个变量没有值,null类型唯一可能的值就是null,在下列情况下一个变量被认为是null:
被赋值为null;
尚未被赋值;
被unset()。
变量 empty is_null isset
$a=”” true false true
$a=null true true false
var $a true true false
$a=array() true false true
$a=false true false true
$a=15 false false true
$a=1 false false true
$a=0 true false true
$a=”0” true false true
$a=”true” false false true
$a=”false” false false true