• 技术文章 >后端开发 >PHP问题

    php false跟0的区别是什么

    藏色散人藏色散人2021-11-29 09:49:49原创275

    php false跟0的区别:1、false是boolean值,而0是数值0;2、在PHP中false是以值为0存储的,但是false和0的类型不一样。

    本文操作环境:Windows7系统、PHP7.1、Dell G3。

    php false跟0的区别是什么?

    php中0与空 Null false的区别

    <?php
    $test=0;
    if($test==''){
     echo '<br />在php中,0即为空'; //被输出
    }
    if($test===''){
     echo '<br />在php中,0即为空'; //不被输出
    }
    if($test==NULL){
     echo '<br />在php中,0即为空'; //被输出
    }
    if($test===NULL){
     echo '<br />在php中,0即为空'; //不被输出
    }
    if($test==false){
     echo '<br />在php中,0即为空'; //被输出
    }
    if($test===false){
     echo '<br />在php中,0即为空'; //不被输出
    }
    ?>

    原因是在PHP中变量是以C语言的结构体来存储的,空字符串和NULL,false都是以值为0存储的,其中这个结构体有个zend_uchar type;这样的成员变量,他是用来保存变量的类型的,而空字符串的类型是string,NULL的类型是NULL,false是boolean。

    这一点可以用echo gettype('');和echo gettype(NULL);来打印看看!而===运算符是不单比较值,还有比较类型的,所以第三个为false!

    所以可以这样说===是等于下面的函数:

    function eq($v1, $v2) {
    if($v1 == $v2 && gettype($v1) == gettype($v2)) {
    return 1;
    } else {
    return 0;
    }
    }

    所以空字符串(''),false,NULL和0是值相等而类型不一样!

    注意:

    NULL是一种特殊的类型.

    两种情况下为NULL

    1. $var = NULL;

    2. $var;

    3.""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

    推荐学习:《PHP视频教程

    以上就是php false跟0的区别是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php false 0
    上一篇:哪个不是php的关键字 下一篇:php >要不要的区别
    Web大前端开发直播班

    相关文章推荐

    • php中0,空,null和false之间有何区别(代码示例)• PHP过滤数组中的0、null、false和''等空值• 直击php中unserialize返回false的解决方法• false是1还是0
    新人一分购

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网