判断变量为空

最近学习php,关于判断是否为空的疑惑,和记录分享给你大家。

empty
如果 变量 是非空或非零的值,则 empty() 返回 FALSE。换句话说,””、0、”0″、NULL、FALSE、array()、var $var、未定义;以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

如果e是未定义或值为NULLL,e是未定义或值为NULLL,e=NULL,它肯定是空,即empty($e)=true;
如果e是int类型,e是int类型,e=0,就相对于数字,0代表为零,即empty($e)=true;
如果e是string类型,e是string类型,e=”“,相对于字符串,”“就代表为是空,即empty($e)=true;
如果e是string类型,e是string类型,e=”0”,相对于字符串,”0“就代表为是零,即empty($e)=true;
如果e是bool类型,e是bool类型,e=false,相对true,false就代表为空,即empty($e)=true;
如果e是array类型,e是array类型,a=array(),相对数组来说,没有元素的数据就为空,即empty($e)=true;
isset
如果 变量 存在(非NULL)则返回 TRUE,否则返回 FALSE(包括未定义)。变量值设置为:null,返回也是false;unset一个变量后,变量被取消了。注意,isset对于NULL值变量,特殊处理。

is_null
检测传入值【值,变量,表达式】是否是null,只有一个变量定义了,且它的值是null,它才返回TRUE . 其它都返回 FALSE 【未定义变量传入后会出错!】

== VS ===
在有些情况下,推荐使用isset来判断一个变量是否为NULL。 
但是从语义上来说,一个变量”是否已显示初始化“和”是否为NULL“是不同的概念,在某些场景下使用isset是不合适的,比如检查一个函数的返回值是否为NULL。 
此时可以使用”==”和”===“来判断它们是否为NULL。 
对于”==”和”===“,它们直接的区别还是很大。对于”==”,它认同空字符串,0,false都为NULL。而对于”===”,只有一个变量真的为NULL,它才代表NULL。 
另外”===”相对于”isset”来说,性能基本接近,甚至要好点。 
因此综上述,判断一个变量是否为NULL最好的办法就是直接使用”===”,这样就不用在is_null,isset之间犹豫。其实上述的结论也同理于False的判断。

附录:
测试代码:

        $data = 0;
        $data1 = '0';
        $data2 = array();
        $data3 = null;
        $data4 = false;
        $data5 = "";
1
2
3
4
5
6
结果:

if (!变量)全部为true
if (isset(变量))全部为true
if (empty(变量))全部为true
if (is_null(变量))  只有null为true 其他为为false
if (变量==null) 只有'0'为false,其他为true
if (变量===null) 只有null为true,其他false
--------------------- 
作者:你刚回来了 
来源:CSDN 
原文:https://blog.csdn.net/wm9028/article/details/78756445 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值