夜间模式
开
关
首页
工具箱
empty与isset的用法及区别
转载
作者:巩文
2014.02.16 22:26
热度:3628
很多同学对empty和isset的区别并不清楚,在判断变量是否为空的时候往往混用,很多情况下,这两个函数确实具有相同的判断结果,所以并未发现什么异常。但是依心在这里要强调的一点事,empty和isset这两个函数千万不能混用,该用哪个就用哪个,否则当你判断一个变量时,测试的时候可能没发现问题,但是在上线之后出现各种各样的数据后问题就显现出来了。依心在这里不重复文档,只是按照依心的理解给大家分析一下。 empty,判断一个变量是否为空。包括变量没有初始化,变量为空字符串,变量值为0,变量值为null,变量值为false,如$a=”,$a=’0′,$a=0,$a=null,$a=false等情况用empty判断都是true,这里大家要注意一下当$a=’null’时是返回false的,因为此时$a为字符串,而不是null类型,这与$a=’0′的情况是不一样的,因为$a=’0′即使是字符串,但也是0,至于php为什么会这样设置,那就是它本身的问题,而不是我们该考虑的了。 isset,判断一个变量是被被设置(初始化),只要你事先给变量赋值,无论是不是空置,它都返回true。如$a=”,,$a=0,这些变量看似是空值,但是实际上已经被赋值,所以用isset判断,都会返回true。这里注意一个变量类型,null,如果一个变量为null,说明它还没有被赋值,所以用isset会返回false。还有什么情况下isset会返回false呢,比如$a=1;var_dump(isset($b));再比如$a=1;unset($a);var_dump($a);这两种情况都会返回false,依心在此只是举例两种情况,并不局限于这两种情况。 依心写到这里,感觉区别这两个函数还是挺容易的,关键在于理解他的意义。empty判断一个变量是否为空,isset判断一个变量是否被初始化,仅此而已。
昵称
邮箱
添加表情
发送
取消
随机文章
php连贯操作实现
thinkphp M方法。单例实现
curl伪造referer与来源IP
PHP框架ORM 解决事务嵌套问题
php extension 开发之 RETURN_XXX()