天天看點

判斷php變量是否為空/已定義

isset()

判斷變量是否已設定

格式:bool isset ( mixed var [, mixed var [, ...]] )

1、若變量不存在則傳回 FALSE

2、若變量存在且其值為NULL,也傳回 FALSE

3、若變量存在且值不為NULL,則傳回 TURE

同時檢查多個變量時,每個單項都符合上一條要求時才傳回 TRUE,否則結果為 FALSE 

empty()

檢查變量是否為空

格式:bool empty ( mixed var )

1、若變量不存在則傳回 TRUE

2、若變量存在且其值為""、0、"0"、NULL、、FALSE、array()、var $var; 以及沒有任何屬性的對象,則傳回 TURE

3、若變量存在且值不為""、0、"0"、NULL、、FALSE、array()、var $var; 以及沒有任何屬性的對象,則傳回 FALSE 

is_null()

判斷是否為null

$var = 0;
// 結果為 true,因為 $var 為空
if (empty($var)) {
    echo '$var is either 0 or not set at all';
}
// 結果為 false,因為 $var 已設定
if (!isset($var)) {
    echo '$var is not set at all';
}
$test=100;
echo is_null($test),is_null(100),is_null($b=100);
           

注:

1、empty,isset首先都會檢查變量是否存在,然後對變量值進行檢測。

      is_null 隻是直接檢查變量值,是否為null,是以如果變量未定義就會出現錯誤!

2、empty,isset輸入參數必須是一個變量(php變量是以$字元開頭的),

      is_null輸入參數隻要是能夠有傳回值就可以。(常量,變量,表達式等)。

      在php手冊裡面,對于他們解析是:empty,isset 是一個語言結構而非函數,是以它無法被變量函數調用。