dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9969|回复: 200

[php知识] php中0/空/null/false的区别

  [复制链接]
  • TA的每日心情

    2024-11-19 20:46
  • 签到天数: 244 天

    [LV.8]以坛为家I

    4434

    主题

    1459

    帖子

    1万

    积分

    会|员

    Rank: 9Rank: 9Rank: 9

    积分
    10734
    发表于 2018-11-16 07:00:56 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    [PHP] 纯文本查看 复制代码
    $a =  0; 
    $b="0"; 
    $c= ''; 
    $d= null; 
    $e = false;
     
    echo "5个变量-原始测试类型";
        var_dump($a);//int 0
        var_dump($b);//string '0'
        var_dump($c);//string ''
        var_dump($d);//null
        var_dump($e);//boolean false
     
    echo "<h4>empty测试</h4>";
        var_dump(empty($a));//true
        var_dump(empty($b));//true
        var_dump(empty($c));//true
        var_dump(empty($d));//true
        var_dump(empty($e));//true
     
    echo "<hr>";
        var_dump(isset($a));//true
        var_dump(isset($b));//true
        var_dump(isset($c));//true
        var_dump(isset($d));//【false】 见结论一
        var_dump(isset($e));//true
     
    echo "<h4>(==)双等式测试</h4>";
        var_dump($a == $b);//true
        var_dump($a == $c);//true
        var_dump($a == $d);//true
        var_dump($a == $e);//true !!
     
        var_dump($b == $c);//【false】见结论二
        var_dump($b == $d);//【false】见结论二
        var_dump($b == $e);//true
     
        var_dump($c == $d);//true
        var_dump($c == $e);//true
     
    echo "<h4>(===)三等式测试</h4>";
        var_dump($a === $b);//false
        var_dump($a === $c);//false
        var_dump($a === $d);//false
        var_dump($a === $e);//false
     
        var_dump($b === $c);//false
        var_dump($b === $d);//false
        var_dump($b === $e);//false
     
        var_dump($c === $d);//false
        var_dump($c === $e);//false

    总结:对于 【0'0' ''null false】五种类型
    empty操作以上五个变量,都返回false
    强等于(===)比较 都为false,同强语言结果(三个等号比较不但要比较值,而且要比较类型)
    但对于(==)比较,需要注意string类型,涉及到底层结构与类型转换

    结论一:关于变量类型的理解
    1.null为不存在之意:php底层的zval空间里(结构见下方)没有存其value值,只存储了一个type标志其 IS_NULL(所以解释了 empty(null)=true,isset(null)=false ,isset('')=true)
    2.【0 ; '0' ; '' ; false 】:这四个为存在,php底层是开辟zval空间存储,有value,有type

    结论二:
    1、string '0'与 string '' 不相等,(想一下就明白,同类型比较【1个长度】的字符串怎么可能 等于 【0个长度】 的字符串)
    2、int 0 却和 string '' 空相等,(非同类形比较,php会做类型转换)
    3、string '0' null 不相等,int 0 null 相等






    回复

    使用道具 举报

    该用户从未签到

    23

    主题

    7844

    帖子

    984

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    984

    发表于 2018-11-16 10:14:47 | 显示全部楼层
    看帖回帖是美德!:lol
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20

    主题

    7940

    帖子

    1037

    积分

    荣誉会员

    积分
    1037

    发表于 2018-11-16 10:45:21 | 显示全部楼层
    正需要,支持楼主大人了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    23

    主题

    8155

    帖子

    1052

    积分

    荣誉会员

    积分
    1052

    发表于 2018-11-16 20:02:57 | 显示全部楼层
    路过,学习下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    24

    主题

    7796

    帖子

    953

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    953

    发表于 2018-11-16 20:10:48 | 显示全部楼层
    正需要,支持楼主大人了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20

    主题

    7940

    帖子

    1037

    积分

    荣誉会员

    积分
    1037

    发表于 2018-11-16 20:42:39 | 显示全部楼层
    有道理。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32

    主题

    7869

    帖子

    943

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    943

    发表于 2018-11-16 23:54:14 | 显示全部楼层
    看帖回帖是美德!:lol
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18

    主题

    7781

    帖子

    928

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    928

    发表于 2018-11-16 23:59:05 | 显示全部楼层
    好好 学习了 确实不错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    51

    主题

    7829

    帖子

    989

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    989

    发表于 2018-11-17 04:06:40 | 显示全部楼层
    看帖回帖是美德!:lol
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    39

    主题

    7819

    帖子

    1026

    积分

    终身会员[B]

    积分
    1026

    发表于 2018-11-17 09:07:17 | 显示全部楼层
    路过,学习下
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-12-23 23:50 , Processed in 0.676053 second(s), 41 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表