PHP中,0和null的区别
不知道大家在MySQL数据库中存储默认数据为0的字段时,但是在程序中判断0或者Null的时候出现了差错,因为0和Null不是完全相等的,看似简单的问题,却在判断的时候很是令人棘
手,Null和0的值是相同的,但是类型却不是一样。简单点就是==和===的差别,第一个==是值相同就好,但是===不仅需要值相同还需要值的类型也要是一样的。
Null是一种特殊的类型,两种类型为Null,比如下面的代码:
1. $var = NULL;
2. $var;
3.0、"0"、NULL以及没有任何属性的对象都将被认为是空的。
看下面的例子
<? $str1 = null; $str2 = 0; echo $str1==$str2 ? ‘相等’ : ‘不相等’; $str3 = ""; $str4 = 0; echo $str3==$str4 ? ‘相等’ : ‘不相等’; $str5 = 0; $str6 = '0'; echo $str5===$str6 ? ‘相等’ : ‘不相等’; $str7=0; $str= null ; echo $str7==$str8 ? ‘相等’ : ‘不相等’; ?>
运行结果
‘相等’‘相等’‘不相等’‘相等’
所以,0和Null的值是相等的,但是它们的类型是不相等的。好了,稍稍做了下 PHP 0 和null区别 的总结,总之,如果分不清楚的话,多作几个判断就OK了。