應該很多人都還沒有認清空字元 串('')和null的關係吧!!現在我來說明一下吧:
先看乙個例子:
'' == null;
'' === null;
執行之後會發現第乙個為true,第二個為false!
為什麼會這樣呢?其實在php 中空字串和null都是以值為0儲存的!而==只比較值,所以第乙個為true!但是第二個為什麼是false呢!?
原因是在php中變數是以c語言的結構體來儲存的,其中這個結構體有個zend_uchar type; 這 樣的成員變數,他是用來儲存變數的型別的,而空字串的型別是string而null的型別是null。這一點可以用echo gettype('');和echo gettype(null);來列印看看!而===運算子是不單比較值,還有比較型別的,所以第二個為false!
所以可以這樣說===是等於下面的函式 :
function eq(
$var1
, $var2
) else }
複製**
所以空字串(''),null和0是值相等而型別不一樣!
注意:
null是一種特殊的型別.
兩種情況下為null
1. $var = null;
2. $var;
php中的global變數為null
今天在開發中,使用global變數,輸出的是null。首先來看乙個正常的 foreach range 1,5 as c 1 var dump c 輸出的內容為 array size 1 0 int 1 array size 1 0 int 2 array size 1 0 int 3 array s...
php中empty和null的區別
php中變數的值為empty的情況 empty的用法相信大家都很熟悉,下面說下,什麼情況下empty var 會輸出true 1 變數的值為空 var 2 變數的值為字串0或者數字0 var 0 或 者var 0 或者 var 0 或者var 0 3 變數的值為flase var flase 4 凡...
php中null,0, ,false的區別
empty 函式用來判斷字串是否為空 只要變數是0,null,false,empty 都判斷為true。num1 num2 0 echo num1 num2 echo echo num1 num2 1 0 結果為 原因是在php中變數時以c語言的結構體來儲存的,空字串和null,false都是以值為...