相信身為新手的我們,每次用到empty()和isset()時等都會有這樣的疑惑:這二者有何差別?什麼時候需要用empty()?什麼時候用isset()?今天我跟大家說說二者的差別,以及二者的應用場景。
1.區別匯總:
區別一:empty()是函數,它具有函數的所有屬性,有返回值,可以使用函數返回值作為參數,可以使用動態變量訪問等;
isset()是語句,它是php一種固有的邏輯結構,如foreach,for,continue等,無法使用動態變數訪問,也無法使用函數返回值作為參數;例子如下:
$a = 'empty'; $a('err');//TRUE empty(intval('1fa'));//FALSE;
區別二:當$a定義後,不論它的值是0,false,null,''等空值,empty()的回傳值均為true;isset()的回傳值也為TURE,isset只在驗證未曾定義的變數時才會回傳false ;
例如:
$a = 0;//'0',false,null,'','0.0'等空值 empty($a);//true empty('aaa');//false empty($b);//true isset($a);//true isset($b);//false,$b未定义
2.應用場景:
a.當判斷一個變數是否定義時,可用isset();
應用:表單提交時用isset($_POST['submit'])的值來判定是否提交表單。
b.當判斷一個變數是否為空時(不需要知道其是否賦值),可用empty();
應用:表單驗證時,需驗證必填項值是否為空。
c.當判斷一個變數已經存在且不為空,可先用isset(),再用empty();
應用:檔案上傳時,需判斷$_FILES已賦值,且不為空。
以上就介紹了empty和isset的差別,包括了方面的內容,希望對PHP教程有興趣的朋友有幫助。