應(yīng)該很多人都還沒有認清空字符串('')和NULL的關(guān)系吧??!現(xiàn)在我來說明一下吧:
先看一個例子: '' == NULL; '' === NULL; 運行之后會發(fā)現(xiàn)第一個為true,第二個為false,! 為什么會這樣呢,?其實在PHP中空字符串和NULL都是以值為0存儲的!而==只比較值,,所以第一個為true,!但是第二個為什么是false呢!,? 原因是在PHP中變量是以C語言的結(jié)構(gòu)體來存儲的,,其中這個結(jié)構(gòu)體有個zend_uchar type;這樣的成員變量,他是用來保存變量的類型的,,而空字符串的類型是string而NULL的類型是NULL,。這一點可以用echo gettype('');和echo gettype(NULL);來打印看看,!而===運算符是不單比較值,還有比較類型的,,所以第二個為false,! 所以可以這樣說===是等于下面的函數(shù): [php] function eq($var1, $var2) { if($var1 == $var2 && gettype($var1) == gettype($var2)) { return 1; } else { return 0; } } [/php] 所以空字符串(''),NULL和0是值相等而類型不一樣,! NULL是一種特殊的類型. 兩種情況下為NULL 1. $var = NULL; 2. $var;
http://bbs./thread-99574-1-1.html |
|
來自: taohongyong > 《專業(yè)》