成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[PHP]一張圖片徹底弄清isset empty函數(shù)區(qū)別?。?!

venmos / 948人閱讀

摘要:如果還有人問你兩者區(qū)別,馬上甩出這種圖有興趣可以往下閱讀,官方手冊給出的例子手冊這是一張將區(qū)別的表格,從表格中我們可以發(fā)現(xiàn)返回值等同返回值等同。

簡單談一下isset和empty的區(qū)別?

如果你是在面試,碰巧面試官提了這個問題。你可以這樣回答:

如果變量值為0、空字符串、空數(shù)組等等,empty認(rèn)為它是空的,而isset認(rèn)為它不是空的。

如果變量不存在,isset和empty都認(rèn)為它是空的。

建議使用isset函數(shù),避免使用empty掉坑。

如果你想了解他們之間更詳細的區(qū)別,請繼續(xù)往下看...

一張圖徹底弄清

用ProcessOn畫了一張圖片

注意

為了方便對比, 這里對empty函數(shù)取反了。注意是 !empty()

""、0、"0"、FALSE、array()...該條件沒有補全,可以自行測試

如果你看上去一頭霧水,請先暫時跳過這一小節(jié)

這就是isset empty對應(yīng)不同變量時的返回結(jié)果,兩者的區(qū)別都匯聚在這張圖片中了。

綠色虛線框里isset的表現(xiàn),黃色虛線框里是!empty的表現(xiàn)。可以看出,empty相比isset需要判斷更多的條件,才能確定返回結(jié)果。

如果你有些許地方不明白,或者記不住全部細節(jié)。下面我來告訴你怎么記住這張圖片的所有內(nèi)容!

礦泉水的思考

想象一下,現(xiàn)在桌子上有一個礦泉水瓶。瓶子可能有這4種狀況:

水瓶:瓶子里有水

空氣瓶:水喝完了,瓶子里面只有空氣

真空瓶:瓶子拿去抽了真空,里面啥都沒有

桌面上沒有瓶子

把變量類比成礦泉水瓶,對應(yīng)4種狀態(tài):

一般值:存儲單元里面放著一般的值

空氣值:變量為 ""、0、"0"、FALSE、array()...

真空值:變量為NULL

變量不存在或沒有定義

小學(xué)生empty 和 中學(xué)生isset

假設(shè)我們可以用isset empty函數(shù)要判斷一個礦泉水瓶是不是空的,會有這樣的結(jié)果:

如果是空氣瓶,那么empty認(rèn)為它是空的(它看起來的確是空的?。。鴌sset卻認(rèn)為它不是空的(它有空氣?。。?/p>

如果是真空瓶,那么empty isset都會認(rèn)為它是空的

如果是水瓶,那么empty isset都會認(rèn)為它不是空的

可以看出,empty就是一個不懂科學(xué)的小學(xué)生,以為瓶子看起來是空的便是空瓶!果然還是太年輕啊~

而isset是個學(xué)過物理的中學(xué)生,明白“真空”的概念——他清楚瓶子里還有空氣!

所以上面三種情況中第1條,老司機isset經(jīng)驗豐富,得出了跟小學(xué)生empty不一樣的結(jié)論。

現(xiàn)在我們可以知道,如果用這兩個函數(shù)來判斷變量,結(jié)果會是這樣:

如果是空氣值( ""、0、"0"、FALSE、array()...),那么empty認(rèn)為它是空的,而isset認(rèn)為它不是空的

如果是真空值(NULL),那么empty isset都認(rèn)為它是空的

如果是一般值(除了這兩種情況,也就是說瓶子里面有水),那么empty isset都認(rèn)為它不是空的

這就是在一開始給出的面試回答。現(xiàn)在,理解起來是不是很容易呢?

詳細對比 isset()函數(shù)

格式:bool isset ( mixed var [, mixed var [, ...]] )

功能:檢測變量是否設(shè)置

返回值:

若變量不存在則返回 FALSE
若變量存在且其值為NULL,也返回 FALSE
若變量存在且值不為NULL,則返回 TURE
同時檢查多個變量時,每個單項都符合上一條要求時才返回 TRUE,否則結(jié)果為 FALSE

更多說明:
使用 unset() 釋放變量之后,它將不再是 isset()。
PHP函數(shù)isset()只能用于變量,傳遞任何其它參數(shù)都將造成解析錯誤。
檢測常量是否已設(shè)置可使用 defined() 函數(shù)。

empty()函數(shù)

格式:bool empty ( mixed var )

功能:檢查一個變量是否為空

返回值:

若變量不存在則返回 TRUE
若變量存在且其值為""、0、"0"、NULL、FALSE、array()、var $var以及沒有任何屬性的對象,則返回 TURE
若變量存在且值不為""、0、"0"、NULL、FALSE、array()、var $var以及沒有任何屬性的對象,則返回 FALSE

更多說明:
empty()的返回值=!(boolean) var,但不會因為變量未定義而產(chǎn)生警告信息。參見轉(zhuǎn)換為布爾值獲取更多信息。
empty() 只能用于變量,傳遞任何其它參數(shù)都將造成Paser error而終止運行。
檢測常量是否已設(shè)置可使用 defined() 函數(shù)。

最完整的區(qū)別

現(xiàn)在我們把礦泉水和變量放到一起,畫出最完整的區(qū)別圖:

如果能你能讀懂前文內(nèi)容,你將會徹底理解這兩張圖,往后isset empty區(qū)別就印刻在腦海里了。如果還有人問你兩者區(qū)別,馬上甩出這種圖~

有興趣可以往下閱讀,官方手冊給出的例子...

PHP 手冊

這是一張將empty isset if($var)區(qū)別的表格,從表格中我們可以發(fā)現(xiàn):

isset() 返回值等同 !is_null()

empty() 返回值等同 !boolean($x)。if($x)其實是先把變量轉(zhuǎn)換成boolean類型,再進行條件判斷

如果$var不存在,if($x) 語句會讓php發(fā)生E_NOTICE級別異常,但不是致命錯誤,依舊可以執(zhí)行腳本;

empty($x)和 isset($x)不會報告任何異常

參考

PHP isset()與empty()的使用區(qū)別詳解_腳本之家

PHP: PHP 類型比較表 - Manual

轉(zhuǎn)載

本文由1nFrastr編寫,轉(zhuǎn)載請注明出處!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28936.html

相關(guān)文章

  • PHP細節(jié):foreach、(漢子)字符串反轉(zhuǎn)、isset,empty用法區(qū)別以及0、‘’、null

    摘要:規(guī)定要反轉(zhuǎn)的字符串。參考文檔實現(xiàn)字符串翻轉(zhuǎn)包含中文漢字參考處理漢字官方文檔函數(shù)最下面給出了支持的方案三用法區(qū)別以及之間關(guān)系用法如果是非空或非零的值,則返回。若想檢測常量是否已設(shè)置,可使用函數(shù)。 一、foreach 第一題: //1.for循環(huán)執(zhí)行幾次 //for($i=0;$i=1;$i++){ // echo $i; //} $i==1條件很成立,死循環(huán) for($i=0;$...

    孫淑建 評論0 收藏0
  • API 交互中怎么做好圖片驗證碼?

    摘要:理論原理同樣是簽發(fā),只不過這次由服務(wù)端來簽發(fā),然后將通過發(fā)送給客戶端,客戶端需要先取到圖片資源,注意這里返回的應(yīng)該是一個合法的二進制流,然后從中取出,同時展示給用戶。 前言 在傳統(tǒng)的 Web 開發(fā)過程中,處理圖形驗證碼很簡單,只需要在后臺用隨機字符串生成一個圖片,將驗證碼內(nèi)容放進 Session 即可,用戶提交表單時從 Session[1] 取出判斷即可。 但是現(xiàn)如今,越來越推崇 AP...

    source 評論0 收藏0
  • PHPisset,empty,is_null用法和區(qū)別

    摘要:用法如果是非空或非零的值,則返回。如果已經(jīng)使用釋放了一個變量之后,它將不再是。若使用測試一個被設(shè)置成的變量,將返回。同時要注意的是一個字節(jié)并不等同于的常數(shù)。 1.empty用法bool empty ( mixed var)如果 var 是非空或非零的值,則 empty() 返回 FALSE。換句話說,、0、0、NULL、FALSE、array()、var $var; 以及沒有任何屬性的...

    fou7 評論0 收藏0
  • PHP工程師面試題+筆試題

    摘要:由于協(xié)議中沒有定義任何狀態(tài)碼,所以除非在某些試驗條件下,服務(wù)器禁止向此類客戶端發(fā)送響應(yīng)。表示要完成請求,需要進一步操作。 最近在廣州找工作,大四狗,讀著三本前兩年剛升二本的學(xué)校,文科生,好像一切條件都非常不利,但我還是毅然選擇這條路——拍黃片,人不能固步自封,還是要拓展一下自己的知識面,不能只學(xué)php而不拓展視野,還是要學(xué)學(xué)python、java、前端這些面試得有點心塞,各種因為學(xué)歷被...

    v1 評論0 收藏0

發(fā)表評論

0條評論

venmos

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<