這篇文章帶給大家的內容是關於php中empty函數和isset函數的對比介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
老生常談的話題,之所以用這兩個函數做對比,是因為常用來判斷變數是否為空,但是它們有些不同,下面進行下對比。
定義
先來看下兩個函數的手冊
empty
empty — 檢查一個變數是否為空
bool empty ( mixed $var )
判斷一個變數是否被認為是空的。當一個變數並不存在,或它的值等同於FALSE,那麼它會被認為不存在。如果變數不存在的話,empty()並不會產生警告。
isset
isset — 偵測變數是否已設定且非 NULL
bool isset ( mixed $var , [mixed $... ] )
偵測變數是否設置,且不是 NULL。
從手冊可以看出兩個函數的重點,empty 的重點是否為空,isset 的重點是否已設定且非 NULL 。
比較
以下羅列幾種可能出現的空值,使用兩個函數判斷變數是否為空,比較一下回傳值是否符合期待(註:isset 回傳 false 等同於 empty 回true)。
變數值 | empty | isset | 是否相同 |
---|---|---|---|
false | bool(true) | bool(true) | 不相同 |
bool(true) | bool(false) | 相同 | |
bool(true) | bool(true) | 不同 | |
bool(true) | #bool (true) | 不相同 | |
bool(true) | bool(true) | #不相同 | |
bool(true) | bool(true) | ##不相同 | |
bool(true) | bool(false) | 相同 |
由上表可以看出,empty 認為所有值都是空;而 isset 除了 null 和未定義,都認為已設定且非NULL。了解了兩個函數的不同點,在寫程式碼的時候根據需求進行選擇。
以上是php中empty函數和isset函數的比較介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!