isset()和empty()到底区别是什么。

一招鲜吃遍天,自从看了燕十八关于PHP变量内部机制的那课,解释了一些很久的疑惑,知其然还知其所以然,果然是学习的最佳途径,比背下来要重要N倍。

我们知道一个变量有变量表的位置,然后他指向自己的内存地址,

<?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包括没有设置的变量都会被认为是空。

如此理解肾好,比死记硬背不知道要高到哪里去了。

转载于:https://www.cnblogs.com/saw2012/archive/2013/06/06/3120337.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值