首頁 >後端開發 >php教程 >php中empty函數和isset函數的比較介紹

php中empty函數和isset函數的比較介紹

不言
不言轉載
2019-02-11 09:30:422291瀏覽

這篇文章帶給大家的內容是關於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)。

##nullbool(true)bool(false)相同''bool(true) bool(true)不同'0'bool(true)#bool (true)不相同0bool(true)bool(true)#不相同array()bool(true)bool(true)未定義結論
變數值 empty isset 是否相同
false bool(true) bool(true) 不相同
##不相同
bool(true) bool(false) 相同

由上表可以看出,empty 認為所有值都是空;而 isset 除了 null 和未定義,都認為已設定且非NULL。了解了兩個函數的不同點,在寫程式碼的時候根據需求進行選擇。

以上是php中empty函數和isset函數的比較介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除