這裡到提到三個函數:empty()、is_null() 與 isset()。
empty
- 判斷傳傳入的變數是否為空,若傳入的變數是空、0、FALSE的值,或該變數不存在,則此函數傳回 true。在PHP5.5以前的版本,empty() 只支援以變數傳入,如 empty(0) 不是一個合法的呼叫方式。
- 下列的值會被視為是空的:""、0、"0"、NULL、FALSE、array()、$var (一個被宣告的變數,但沒有被指定值)。
is_null
判斷傳入的變數是否為NULL。
isset
判斷一個變數是否己被設置 (set),而且不是 NULL,若使用 unset() 函數釋放 (unset) 一個變數之後,將該變數傳入 isset() 則會回傳 true。此函數可以接受多個參數,如:
isset($x, $y, $z);當所有傳入的變數都有被設置時,此函式才會回傳 true。
現在擷取上列表格一些結果,以程式碼做些範例:
var_dump(empty($v0)); //若變數傳入 empty 前未宣告 ,empty 回傳:true var_dump(is_null($v0)); //若變數傳入 is_null 前未宣告, //is_null 會報「Undefined variable」的錯誤 var_dump(isset($v0)); //若變數傳入 isset 前未宣告 ,isset 回傳:false $v1 = ""; var_dump(empty($v1)); //若變數值為 "",empty 回傳:true var_dump(is_null($v1)); //若變數值為 "",is_null 回傳:false var_dump(isset($v1)); //若變數值為 "",isset 回傳:true $v2 = NULL; var_dump(empty($v2)); //若變數值為 NULL,empty 回傳:true var_dump(is_null($v2)); //若變數值為 NULL,is_null 回傳:true var_dump(isset($v2)); //若變數值為 NULL,isset 回傳:false $v3 = array(); //(空陣列) var_dump(empty($v3)); //若變數值為 array() (空陣列),empty 回傳:true var_dump(is_null($v3)); //若變數值為 array() (空陣列),is_null 回傳:false var_dump(isset($v3)); //若變數值為 array() (空陣列),isset 回傳:true $v4 = FALSE; var_dump(empty($v4)); //若變數值為 FALSE,empty 回傳:true var_dump(is_null($v4)); //若變數值為 FALSE,is_null 回傳:false var_dump(isset($v4)); //若變數值為 FALSE,isset 回傳:true $v5 = TRUE; var_dump(empty($v5)); //若變數值為 TRUE,empty 回傳:false var_dump(is_null($v5)); //若變數值為 TRUE,is_null 回傳:false var_dump(isset($v5)); //若變數值為 TRUE,isset 回傳:true $v6 = "FALSE"; var_dump(empty($v6)); //若變數值為 "FALSE"(字串),empty 回傳:false var_dump(is_null($v6)); //若變數值為 "FALSE"(字串),is_null 回傳:false var_dump(isset($v6)); //若變數值為 "FALSE"(字串),isset 回傳:true $v7 = "TRUE"; var_dump(empty($v7)); //若變數值為 "TRUE"(字串),empty 回傳:false var_dump(is_null($v7)); //若變數值為 "TRUE"(字串),is_null 回傳:false var_dump(isset($v7)); //若變數值為 "TRUE"(字串),isset 回傳:true $v8 = 0; var_dump(empty($v8)); //若變數值為 0,empty 回傳:true var_dump(is_null($v8)); //若變數值為 0,is_null 回傳:false var_dump(isset($v8)); //若變數值為 0,isset 回傳:true $v9 = "0"; var_dump(empty($v9)); //若變數值為"0"(字串),empty 回傳:true var_dump(is_null($v9)); //若變數值為"0"(字串),is_null 回傳:false var_dump(isset($v9)); //若變數值為 "0"(字串),isset 回傳:true