最近看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 和 空数组,只有记住就好啦,暂时没有发现好的理解方法,如果您有什么好的理解,欢迎指教。