PHP 中函數 isset(), empty(), is_null() 的區別,
使用 PHP 進行開發的時候,經常會用到 isset(), empty(), is_null() 這幾個函數對數據進行判斷,但是這是哪個函數的具體區別其實沒有很好的掌握。下面我們詳細講解一下:
NULL
什么是 NULL,當你開始寫 PHP 代碼的時候,直接用了未定義厄一個變量。
echo $var + 3; //使用這個變量出現:Notice: Undefined variable: var in
如果將其改寫成:
$var = NULL;
echo $var + 3; //這樣就不會有問題了
所以變量最好初始化,即使沒有,可以將NULL賦給變量,表示這個變量已經定義但沒有值,屬于 NULL 類型。
is_null()
當滿足下面三種情況時,is_null() 將返回 TRUE,其它的情況返回 FALSE
變量沒有被賦值
變量被賦值為NULL
變量未定義,相當于 unset()
具體一些例子:
$var = NULL;
var_dump(is_null($var)); // TRUE
$var1;
var_dump(is_null($var1)); // TRUE Notice: Undefined variable
$num = 520;
unset($num);
var_dump(is_null($num)); //TRUE Notice: Undefined variable
var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable
$var = 0; is_null($var); // FALSE
$var = FALSE; is_null($var); // FALSE
$var = ''; is_null($var); // FALSE
isset()
檢測已設定,并且不是NULL。如果沒有設置變量,變量未賦值,或變量被設為 NULL,isset() 函數就返回 NULL。
正好和 is_null() 函數相反,is_null() 為 TRUE 的情況在 isset() 中就為 FALSE。
如果傳遞多個參數,將取交集。即所有參數全部符合 isset() 時才返回 TRUE。
$var = NULL; isset($var); // FALSE 當一個變量被賦值為NULL時,就表示這個變量沒有值
$var = 0; isset($var); // TRUE
$var = FALSE; isset($var); // TRUE
$var = ''; isset($var); // TRUE
isset($some_undefined_var); // FALSE Undefined variable
可以看出 isset() 著重檢測一個 變量是否設置和這個變量是否有具體的值,當變量滿足這兩種情況時 isset() 返回TRUE
empty()
判讀變量是否為空。相當于 (!is_set($var) || !$var),來看一些具體例子:
$var = NULL; empty($var); // TRUE
$var = 0; empty($var); // TRUE
$var = FALSE; empty($var); // TRUE
$var = ''; empty($var); // TRUE
empty($some_undefined_var); // TRUE
empty() 為 TRUE 的情況,若變量不存在,或者變量存在且其值為””、0、”0″、NULL、FALSE、array()、var $var; 以及沒有任何屬性的對象,則返回 TURE。
一般如 !empty() 的判斷,就是變量存在,且值不為 “”、0、”0″、NULL、FALSE、array() 以及只是單純定義一個變量 $var。
本站推薦使用的主機:,國外主機建議使用。
轉載請注明出處:https://www.it131.org/11389.html