php中empty,isset和array_key_exists的区别和技巧

1. 关于empty

1.判断一个变量是否为空,注意这个”空“,null,0,false。都属于空
实际上,当值为0的时候,咋能认为他是“空”呢?

以下的情况将被考虑为空
    * 0 (0 as an integer)
    * 0.0 (0 as a float)
    * "0" (0 as a string)
    * NULL
    * FALSE
    * array() (an empty array)
    * $var; (a variable declared, but without a value)
    * "" (an empty string)
实例代码:
    $a = false;
    if(empty($a))
        echo "空";
    else
        echo "不空";

result: 空

2. 关于isset

1.只有被赋值为null,或者被unset的时候,才会返回false,否则都是被设置的

3. 小总结

帮助记忆

  • 1.当要 判断一个变量 是否已经声明的时候可以使用isset函数
  • 2.当要 判断一个变量 是否已经赋予数据且不为空 可以使用empty函数
  • 3.当要 判断一个变量 存在且不为空isset函数判断再用empty函数判断

  • isset(订金)

  • empty(合同) 形象一点就是先有订金再有合同

关于性能

  • 1.对于数组,isset的性能要高于array_key_exists
    所以,如果数组比较大,我们应该用如下方法保证性能和准确性
    $arr = array('a'=>null, 'b'=>'b');
    #因为array_key_exists函数当数组比较大的时候会很消耗资源,所以前面先加一个isset判断减小资源消耗(isset不能判断$arr['a']存在,所以在交给array_key_exists来进一步判断) 
    if (isset($arr['a']) || array_key_exists('a', $arr)) {
        echo 'yes'; # code...
    } else {
        echo 'no'; # code...
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值