PHP isset()與empty()的區別

1、isset()函數函數

做用:通常用來檢測變量是否設置

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

返回值:
    1)若變量不存在,返回FALSE
    2) 若變量存在且值爲Null,返回FALSE
    3)若變量存在且值不爲NULL,返回TRUE
    4)同時檢查多個變量時,每一個單項都符合3)時返回TRUE,不然結果爲FALSE

注意:
    1)使用unset()釋放變量後,它將再也不是isset()
    2)isset()只能用於變量,傳遞任何其它參數將形成解析錯誤,檢測常量是否已設置能夠用defined()函數

2、empty()函數測試

做用:檢查一個變量是否爲空

格式:bool empty(mixed var)

返回值:
    1)若變量不存在,返回TRUE
    2)若變量存在且值爲'''',0,"0",NULL,FALSE,array(),var $var,以及沒有任何屬性的對象,則返回TRUE
    3)若變量存在且值不爲'''',0,"0",NULL,FALSE,array(),var $var,以及沒有任何屬性的對象,則返回FALSE


注意:
    1)empty()的返回值 = !(boolean) var,但不會由於變量未定義二產生警告信息。
    2)empty只能用於變量,監測常量是否存在能夠用defined()函數

3、empty()與isset()的區別 若是empty()函數的參數是非空或非0的值,則empty()返回FALSE。換句話說,"", 0, "0", NULL, FALSE, array(), var $var以及沒有任何屬性的對象都將被認爲是空的,若是參數爲空,則返回TRUE;若是函數isset()參數存在,則返回TRUE,不然返回FALSE。若使用isset()測試一個被設置成NULL的變量或使用unset()釋放了一個變量,將返回FALSE。同時要注意的是一個NULL字節("\0")並不等同於PHP的NULL常數。推薦使用!empty($var)這種方法去判斷一個變量存在且不爲空。code

相關文章
相關標籤/搜索