is_null, empty, isset的区别

参考博客:

http://www.jb51.net/article/24666.htm

http://www.jb51.net/article/36223.htm

is_null, empty, isset, unset 我们先来看看这4个函数的描述。

isset 判断变量是否已存在(配置)
unset 把变量删除(释放)掉
empty 判断变量是否为空
is_null 判断变量是否为NULL
ok,已经开始搞人了。那么开始,这4个函数中除了unset,其他3个都是判断函数,unset首先出局,因为他不会搞错,其次是is_null,我们可以把它看成是!isset,是isset的一个逆操作,下面一张表可以很清楚的说明他们之间的关系:

变量                          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

从中我们可以发现只要变量是否为” “或者0,或者是false和null,只要是这些值empty都会返回true,而isset是判断变量是否存在,只要你这个变量不是null或未赋值,返回结果都是true,而is_null正好是isset的反结果。

当然如果只是想做如下工作:
echo !isset($_GET['a']);  //如果得不到变量a的值
echo empty($_GET['a']);  //如果变量a的值是空

null==''  //正确

null===''//错误

鉴于以上说明以及平时经验若要判断某个值存在且不为空,用isset($_GET('district')) && strlen(trim($_GET('district')))>0 这种形式比较合适

posted on 2015-08-12 09:22  Ryanyanglibin  阅读(201)  评论(0编辑  收藏  举报

导航