PHP判断变量为空的坑坑

empty、isset、isnull的区别
1.当我们只想判断变量是否为空字符串时,如果此时有值有0存在的可能,我们用empty, 就很可能出现问题了。因为empty会把很多值判断为空,所以用的时候得注意了;empty用的时候除非能很确定排除某些值才能进行使用,这个函数理解了还是挺好用的!具体看实验!

2.isset 用的时候也是个坑,如果变量没有定义,用这个判断就是为false; 或者变量定义存在,但值为null,结果也是为false; 其他都返回为true;一般用在判断变量是否定义比较多!

3.is_null就比较专心,只对变量定义且值为null进行判断为true,如果没定义程序直接报错。

实验如下:

<?php

$test_var = array('', ' ', 0 , '0', false, 'false', 'null', null, array(), array('') );

foreach ($test_var as $key=>$value) {
    if( empty($value) )
    {
        var_dump($key.'=>empty');
    }
    else
    {
        var_dump($key.'=>not empty');
    }
}

echo empty($undefine_var) ? 'empty' : 'not empty';

var_dump('================Just Line===============');
foreach ($test_var as $key=>$value) {
    if( isset($value) )
    {
        var_dump($key.'=>set');
    }
    else
    {
        var_dump($key.'=>not set');
    }
}

echo isset($undefine_var) ? 'set' : 'not set';

var_dump('================Just Line===============');

$test = null;
echo is_null($test) ? 'null': 'not null';

// echo is_null($test_2) ? 'null': 'not null';

运行结果如下:

string '0=>empty' (length=8)

string '1=>not empty' (length=12)

string '2=>empty' (length=8)

string '3=>empty' (length=8)

string '4=>empty' (length=8)

string '5=>not empty' (length=12)

string '6=>not empty' (length=12)

string '7=>empty' (length=8)

string '8=>empty' (length=8)

string '9=>not empty' (length=12)

empty

string '================Just Line===============' (length=40)

string '0=>set' (length=6)

string '1=>set' (length=6)

string '2=>set' (length=6)

string '3=>set' (length=6)

string '4=>set' (length=6)

string '5=>set' (length=6)

string '6=>set' (length=6)

string '7=>not set' (length=10)

string '8=>set' (length=6)

string '9=>set' (length=6)

not set

string '================Just Line===============' (length=40)

null

根据实验结果
empty 会把‘’,0,‘0’,false, null, array(),还有未定义的变量判断为空

isset 会把变量未定义或者变量定义了但值为null的,判断为未设置

is_null只会把变量定义了且为null的判断为null

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值