对PHP中的0、false、空字符串、null 的比较

最近看PHP基础知识,总结了下对于初学着经常陷入迷茫的0、false、空、null的比较。这些特殊值在比较大小的时候经常使初学者不知所措。在讲之前我们先来说一下PHP的数据类型。

PHP支持八种原始类型:

四种标量类型: string(字符串)、integer(整型)、float(浮点型,也作 double 、boolean(布尔型)

两种复合类型:array(数组)、object(对象)

两种特殊类型:resource(资源)、NULL(空)

接下来,我们给变量赋以下值:

$a = ‘ ‘;   $a_b = ‘0’;   $a_c = ’00’ ;  

$c = 0;  $d = 0.0;  

$e = false;  

$f = array( );  $g = NUll;

判断以下表达式的值:

比较表达式             值               分析

$a == $a_b          false  

$a_b == $a_c       true

$a_b === $a_c    false

$a  == $c             true

$a  === $c          false

$a == $d             true

$c == $d             true

$c === $d          false

$a == $e             true

$a_b == $e         true

$a_c  == $e        false

$c  == $e           true

$d  == $e          true

$a == $f           false

$c ==  $f          false

$e == $f           true

$a == $g          true

$a_b == $g       false

$c == $g           true

$e == $g           true

$f == $g           true

以上表达式的值,如果你都能答对,并且理解,那应该不用接着往下看了,说明你这块儿知识掌握的很好了,平时运用足够了,当然,再往深处研究只懂这些是不够。

有一个规律,常用不同数据类型(标量类型)之间的比较规律,如果记住这个规律,那么标量之间的数据比较,就没有问题了,但是和空数组 、null的比较还不够。

(此规律摘自博客:http://blog.csdn.net/l1028386804/article/details/48771375

规律:如果比较的数据中,有布尔数据类型,转为布尔值比较,布尔值比较只有一个规则,

true  >  false;

 否则,如果有数字值,就转为数字值比较,这是常规比较;

否则,如果俩边都是纯数字字符串,转为数字比较;

否则,就按字符串比较。

其它,涉及到null 和 空数组,只有记住就好啦,暂时没有发现好的理解方法,如果您有什么好的理解,欢迎指教。

    原文作者:晨风99
    原文地址: https://www.jianshu.com/p/b6d50d6a68af
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞