empty与isset的用法及区别(转载)
2016-04-30 14:46
573 查看
empty与isset的用法及区别
很多同学对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的小伙伴挺有用的。
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- php7 读取php.ini[4]
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- 简单好用的PHP分页类
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- PHP VBS JS 函数 对照表