资讯专栏INFORMATION COLUMN

PHP下==与===区别

NikoManiac / 891人阅读

摘要:因此看得出来,即使,,但是不确定的,因此,为了养成良好的变成习惯,避免出现不可预知的错误,我们应该尽量使用。的三个要点两者类型不等为两者值不等为两者类型和值都相等为

三个要点:

当比较双方同类型时二者没有区别

当双方类型不一致时,==的比较结果无法预知,===为false

null也是一种类型

先来个样例

if(1 == "1"){  
    echo "1 == 1 is true".PHP_EOL;  
}else{  
    echo "1 == 1 is false".PHP_EOL;  
}  

他的输出结果将是true,此时你一定觉得没毛病,PHP时弱类型的语言,1就是等于"1",但是我们通常不建议这么做,原因请看下面的实例

if(1 == true){  
    echo "1 == true is true" . PHP_EOL  
        . "gettype(1) == "  
        . gettype(1) . PHP_EOL  
        . "gettype(true) == "  
        . gettype(true)  
        . PHP_EOL . PHP_EOL;  
}else{  
    echo "1 == true is false" . PHP_EOL;  
}  
  
if("test" == 0){  
    echo "test == 0 is true" . PHP_EOL  
        . "gettype("test") == "  
        . gettype("test") . PHP_EOL  
        . "gettype(0) == "  
        . gettype(0)  
        . PHP_EOL . PHP_EOL;  
}else{  
    echo "test == 0 is false".PHP_EOL;  
}  

注释:gettype(var)能够以字符串的形式返回var的数据类型

上方代码输出结果如下
1 == true is true
gettype(1) == integer
gettype(true) == boolean

test == 0 is true
gettype("test") == string
gettype(0) == integer

看到上面1 == true没毛病,但是他们两个的类型时不一样的,true时boolean类型,php中任何数值非零即为true,0为false。因此就引入了上面样例中第二部分代码和第二部分输出的问题,由于0为false,而字符串参与比较时,由于无法直接与boolean比较,string都将被处理为0,这时候,所有的string都将被处理为0。

此外,你如果尝试(0 == null)他将为true,但是 "test" == null却为false。因此看得出来,即使a==b,b==c,但a==c是不确定的,因此,为了养成良好的变成习惯,避免出现不可预知的错误,我们应该尽量使用===。

===的三个要点:

两者类型不等为false

两者值不等为false

两者类型和值都相等为true

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23345.html

相关文章

  • 高级PHP(初级架构师)面试题

    摘要:协议中,最大传输单元一般最大是多少,在协议中,如果一个数据被分割成多个包,这些包结构中什么字段会被标记相同。 PHP 篇 GC PHP 5 的内存回收原理?请详细描述ZendMM的工作原理 PHP 7 的垃圾回收和 PHP 5 有什么区别? 结构 PHP 7 中对zVal做了哪些修改? PHP 7 中哪些变量类型在栈,哪些变量类型在堆?变量在栈会有什么优势?PHP 7是...

    longmon 评论0 收藏0
  • php 面试题目整理(持续更新)

    摘要:来自博客整理于面试别人或被别人面试的一些题目持续更新答案网上基本都有,不一一列举。例有个人去游玩,需要买水,商店活动买瓶赠送一瓶。请问题目至少需要买多少瓶饮料才可以人手一瓶前端方面前端性能团队总结的条黄金定律说出几条 来自 AT博客整理于面试别人或被别人面试的一些题目(持续更新),答案网上基本都有,不一一列举。希望能帮到需要换工作的你。 数据库 mysql 索引的理解 mysql b...

    missonce 评论0 收藏0
  • php 面试题目整理(持续更新)

    摘要:来自博客整理于面试别人或被别人面试的一些题目持续更新答案网上基本都有,不一一列举。例有个人去游玩,需要买水,商店活动买瓶赠送一瓶。请问题目至少需要买多少瓶饮料才可以人手一瓶前端方面前端性能团队总结的条黄金定律说出几条 来自 AT博客整理于面试别人或被别人面试的一些题目(持续更新),答案网上基本都有,不一一列举。希望能帮到需要换工作的你。 数据库 mysql 索引的理解 mysql b...

    Tony_Zby 评论0 收藏0

发表评论

0条评论

NikoManiac

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<