天天看點

PHP中空字元串介紹0、null、empty和false之間的關系PHP中空字元串介紹0、null、empty和false之間的關系

PHP中空字元串介紹0、null、empty和false之間的關系

作者: 字型:[

增加 減小

] 類型:轉載 時間:2012-09-25

用PHP開發那麼久,PHP中空字元串、0、null、empty和false之間的關系總是有些不确定的東西。遇到它們應該用哪個方法函數去處理

如果用錯方法函數或是用少了,如果幾個方法函數的邏輯順序錯了,很可能就是一個漏洞,而且不容易找出來。糾結啊~

上網找找看哪位高人有總結出相關的結論出來,果然有!不過似乎不是很全面,我在這裡稍完善了一下,僅供參考。

複制代碼代碼如下:

// 判斷 0 與 ''、null、empty、false 之間的關系 

$a = 0; 

echo "0 與 ''、 empty、null、false 之間的關系:"; 

if($a == ''){ 

echo "0 == '';"; 

}else{ 

echo "0 != '';"; 

if(trim($a) == ''){ 

echo "trim(0) == '';"; 

echo "trim(0) != '';"; 

if(strval($a) == ''){ 

echo "strval(0) == '';"; 

echo "strval(0) != '';"; 

if($a === ''){ 

echo "0 === '';"; 

echo "0 !=== '';"; 

if(empty($a)){ 

echo "0 is empty;"; 

echo "0 is not empty;"; 

if(is_null($a)){ 

echo "0 is null;"; 

echo "0 is not null;"; 

if(is_numeric($a)){ 

echo "0 is numeric;"; 

echo "0 is not numeric;"; 

if(is_string($a)){ 

echo "0 is string;"; 

echo "0 is not string;"; 

if(!$a){ 

echo "0 is false;"; 

echo "0 is not false;"; 

// 判斷 '' 和 0、null、empty、false 之間的關系 

$a = ''; 

echo "'' 和 0、empty、null、false 之間的關系:"; 

if($a == 0){ 

echo "'' == 0;"; 

echo "'' != 0;"; 

if(intval($a) == 0){ 

echo "intval('') == 0;"; 

echo "intval('') != 0;"; 

echo "'' is empty;"; 

echo "'' is not empty;"; 

echo "'' is null;"; 

echo "'' is not null;"; 

echo "'' is numeric;"; 

echo "'' is not numeric;"; 

echo "'' is string;"; 

echo "'' is not string;"; 

echo "'' is false;"; 

echo "'' is not false;"; 

// 判斷 null 和 ''、0、empty、false 之間的關系 

$a = null; 

echo "null 和 ''、0、empty、false 之間的關系:"; 

echo "null == '';"; 

echo "null != '';"; 

echo "null == 0;"; 

echo "null != 0;"; 

echo "null === '';"; 

echo "null !=== '';"; 

if($a === 0){ 

echo "null === 0;"; 

echo "null !=== 0;"; 

echo "strval(null) == '';"; 

echo "strval(null) != '';"; 

echo "intval(null) == 0;"; 

echo "intval(null) != 0;"; 

echo "null is empty;"; 

echo "null is not empty;"; 

echo "null is numeric;"; 

echo "null is not numeric;"; 

echo "null is string;"; 

echo "null is not string;"; 

echo "null is false;"; 

echo "null is not false;"; 

echo ""; 

輸出的結果是:

PHP中空字元串介紹0、null、empty和false之間的關系PHP中空字元串介紹0、null、empty和false之間的關系

我想根據輸出結果都可以清楚了解決空字元串、0、null、empty和false之間的大概關系,在開發過程中靈活運用上述代碼裡的方法,加上良好的邏輯,基本上應該是不會出現問題的了。