亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

venmos / 979人閱讀

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

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

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

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

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

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

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

一張圖徹底弄清

用ProcessOn畫了一張圖片

注意

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

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

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

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

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

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

礦泉水的思考

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

水瓶:瓶子里有水

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

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

桌面上沒有瓶子

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

一般值:存儲(chǔ)單元里面放著一般的值

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

真空值:變量為NULL

變量不存在或沒有定義

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

返回值:

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

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

empty()函數(shù)

格式:bool empty ( mixed var )

功能:檢查一個(gè)變量是否為空

返回值:

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

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

最完整的區(qū)別

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

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

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

PHP 手冊

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

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

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

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

empty($x)和 isset($x)不會(huì)報(bào)告任何異常

參考

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

PHP: PHP 類型比較表 - Manual

轉(zhuǎn)載

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

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

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

相關(guān)文章

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

    摘要:規(guī)定要反轉(zhuǎn)的字符串。參考文檔實(shí)現(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 交互中怎么做好圖片驗(yàn)證碼?

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

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

    摘要:用法如果是非空或非零的值,則返回。如果已經(jīng)使用釋放了一個(gè)變量之后,它將不再是。若使用測試一個(gè)被設(shè)置成的變量,將返回。同時(shí)要注意的是一個(gè)字節(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)碼,所以除非在某些試驗(yàn)條件下,服務(wù)器禁止向此類客戶端發(fā)送響應(yīng)。表示要完成請求,需要進(jìn)一步操作。 最近在廣州找工作,大四狗,讀著三本前兩年剛升二本的學(xué)校,文科生,好像一切條件都非常不利,但我還是毅然選擇這條路——拍黃片,人不能固步自封,還是要拓展一下自己的知識面,不能只學(xué)php而不拓展視野,還是要學(xué)學(xué)python、java、前端這些面試得有點(diǎn)心塞,各種因?yàn)閷W(xué)歷被...

    v1 評論0 收藏0

發(fā)表評論

0條評論

venmos

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<