PHP作後端數據處理的時候,常常須要對數據是否爲[""/"0"/0/FALSE/NULL/array()/var $foo]等狀態進行判斷,最常使用的是empty() || isset(),這兩個函數的區別比較明顯,PHP手冊上的定義是這樣的:php
isset():檢測變量是否設置,而且不是 NULLshell
empty():若是 var 是非空或非零的值,則 empty() 返回 FALSE後端
其中要注意的是empty()對0的處理,當變量數值爲0時,empty返回true,則所判斷數值包含0時,必須選擇isset()
函數
二者能夠配合使用,如 判斷一個變量 有定義 而且 不爲空[empty對未定義的變量返回true=>empty()不能肯定變量是否已定義]性能
有時候爲了代碼的簡潔咱們直接使用變量進行判斷 spa
if($_GET['var']) echo 'the test code';
但這時若是PHP沒有接收到$_GET['var']值的時候,會產生一個notice錯誤{empty則不會有這種狀況[empty()當變量沒有置值時不產生警告]}code
PHP Notice: Undefined index: var in php shell code on line 1
記錄notice會產生開銷,所以對PHP的性能也會有影響it