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了。