isset()和empty()到底区别是什么。
2013-06-06 03:15
351 查看
一招鲜吃遍天,自从看了燕十八关于PHP变量内部机制的那课,解释了一些很久的疑惑,知其然还知其所以然,果然是学习的最佳途径,比背下来要重要N倍。
我们知道一个变量有变量表的位置,然后他指向自己的内存地址,
通过上面这个实验我总结出一个结论。
isset()检查的是变量的内存地址,只有这个变量没有他对应的内存,isset就返回false,什么时候变量没有对应的内存地址,第一.变量根本就没有设置,第二.变量的值为NULL。
empty 检查的是变量对应内存的内容,而只要这个内容转换为boolean,只要是转换后是false,他就返回true,所以‘’,0,null包括没有设置的变量都会被认为是空。
如此理解肾好,比死记硬背不知道要高到哪里去了。
我们知道一个变量有变量表的位置,然后他指向自己的内存地址,
<?php //$a='';//YES you variable $a YES $a is empty //$a=NULL;//YES you variable $a YES $a is empty //$a=0;//YES you variable $a YES $a is empty if(isset($a)) echo 'YES you variable $a<br>'; else echo 'sorry you do not have variable $a<br>'; if(empty($a)) echo 'YES $a is empty'; else echo 'sorry $a is full'; ?>
通过上面这个实验我总结出一个结论。
isset()检查的是变量的内存地址,只有这个变量没有他对应的内存,isset就返回false,什么时候变量没有对应的内存地址,第一.变量根本就没有设置,第二.变量的值为NULL。
empty 检查的是变量对应内存的内容,而只要这个内容转换为boolean,只要是转换后是false,他就返回true,所以‘’,0,null包括没有设置的变量都会被认为是空。
如此理解肾好,比死记硬背不知道要高到哪里去了。
相关文章推荐
- empty与isset有什么区别
- PHP empty、isset、isnull的区别
- Java中字符流和字节流到底有什么区别!!!
- __weak与__block修饰符到底有什么区别
- PHP isset()与empty()的使用区别详解
- 各种机械键盘轴的区别,到底什么轴好
- PHP isset()与empty()的使用区别
- PHP empty、isset、isnull的区别
- “==”和equals()方法到底有什么区别
- MVC和MVP到底有什么区别呢?
- Union和Union All到底有什么区别
- 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别
- php empty()和isset()的区别
- php中isset 、empty 区别
- PHP中empty,isset,is_null用法和区别
- PHP isset()与empty()的使用区别详解
- php empty()与isset()区别的详细介绍
- PHP中isset()和empty()的区别
- isset和empty的区别
- PHP中empty()和isset()的区别