首頁 >後端開發 >php教程 >empty和isset的區別

empty和isset的區別

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原創
2016-07-29 08:57:463493瀏覽

相信身為新手的我們,每次用到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教程有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn