詞義理解
站在用戶的角度思考問題,與客戶深入溝通,找到南芬網(wǎng)站設(shè)計(jì)與南芬網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋南芬地區(qū)。is+set :解釋成中文就是,is==是否;set==設(shè)置。連起來讀就是:是否設(shè)置?
那么這貨返回的一定是一個(gè)布爾型。(false或者true)
函數(shù)概念:
我翻了翻各種資料,大家對(duì)這個(gè)函數(shù)的解釋是:在php中用來檢測(cè)變量是否設(shè)置。
有幾個(gè)要點(diǎn):
1、在php中。說明這個(gè)函數(shù)只能在php程式中編寫(這句話大家不要認(rèn)為是無聊的,后面會(huì)講)
2、檢測(cè)變量。說明這個(gè)函數(shù)不是用來檢測(cè)常量的
譬如:$a=1; 這個(gè)$a 就是一個(gè)變量。
我們來看段代碼:
用法:
上面這個(gè)用法是為了解釋語法,事實(shí)上,沒有傻子會(huì)設(shè)置完變量后立即對(duì)它進(jìn)行檢測(cè)。一般來說,我們有以下幾個(gè)用法:
一、檢測(cè)GET參數(shù)
二、檢測(cè)數(shù)組1
這里有個(gè)技巧:
往往開發(fā)c#或者java比較多的人,會(huì)習(xí)慣用 if($a[5]==null) 或者 用數(shù)組a的長(zhǎng)度來判斷取值是否越界。
在php沒有必要這么干,而且用isset效率還會(huì)高一點(diǎn)。就是這句話:isset($a[5]);(注意$a數(shù)組只有3個(gè)值,5明顯是越界了)
三、檢測(cè)數(shù)組2
注意:在php中,有的數(shù)組是顯示設(shè)置了key,譬如
$a=array(“username”=>”張三”,”sex”=>”男”);
如果我們要判斷$a數(shù)組中是否包含key值為username的項(xiàng),那么有兩種辦法
"張三","sex"=>"男"); if(array_key_exists("username",$a)) //第一種判斷方法,你是否常用呢? { echo "存在1"; } if(isset($a["username"])) //這是第二種辦法,有的人不常用。 { echo "存在2"; } ?>
兩個(gè)echo會(huì)輸出: 存在1和存在2
實(shí)際上 用isset效率更高(高一個(gè)檔次哦~~~)。 因?yàn)橛胊rray_key_exists 會(huì)對(duì)數(shù)組的key進(jìn)行一次查找。
而isset 我們可以這么想:php從哈希表中直接把鍵值取出來并判斷一下是否有值,等同于查找key==username的這個(gè)項(xiàng)的效果.
大家要注意:上面這個(gè)辦法還是有問題的。所以我這里講了僅僅“等同于” array_key_exists的效果,而不是說和它一樣
什么時(shí)候不一樣?我們?cè)賮砜匆粋€(gè)代碼
null,"sex"=>"男"); //這句不一樣哦~~~~~ if(array_key_exists("username",$a)) { echo "存在1"; } if(isset($a["username"])) { echo "存在2"; } ?>
大家看結(jié)果:你會(huì)發(fā)現(xiàn)這里只會(huì)輸出“存在1”
因?yàn)閗ey為username的項(xiàng)的值是null. 則isset(null)則結(jié)果會(huì)返回false。這樣的話,兩個(gè)函數(shù)(issset和array_key_exists就不一樣了哦)
怎么辦呢?一般情況下,我們不能確保數(shù)組中的值一定不為null。同樣我們又非常計(jì)較性能,希望寫出完美的代碼,怎么辦呢?
好,下面我來給出答案:
null,"sex"=>"男"); if(isset($a["username"]) || array_key_exists("username",$a)) { echo "這回值真的肯定存在了"; } ?>
用兩者結(jié)合辦法來完成:
1、根據(jù)從左到右的法則,程序執(zhí)行時(shí)首先會(huì)判斷 isset($a["username"]),如果滿足了,則不會(huì)判斷 || 后面的玩意兒。
2、如果isset($a["username"]) 不滿足,那么才會(huì)去判斷array_key_exists
誰說魚和熊掌不能兼得?咬一口魚也能咬一口熊掌
------------------------------
關(guān)注我的微信公眾號(hào),每天成熟一點(diǎn)點(diǎn)
關(guān)注步驟:
很直接的拿出手機(jī)->打開微信->點(diǎn)掃一掃,掃下面二維碼即可
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。