關(guān)于網(wǎng)站程序開(kāi)發(fā)里有關(guān)0與空字符、null的知識(shí)

2023-02-28    分類(lèi): 網(wǎng)站建設(shè)

前段時(shí)間,在QQ上突然收到一個(gè)客戶(hù)的消息,說(shuō)分銷(xiāo)商的訂購(gòu)庫(kù)存出現(xiàn)了問(wèn)題,聊天記錄如下圖所示:

開(kāi)發(fā)程序

他的網(wǎng)站是關(guān)于在微信里的在線(xiàn)門(mén)票訂購(gòu)系統(tǒng),每種票型都可以設(shè)置分銷(xiāo)商所能購(gòu)買(mǎi)的數(shù)量,一旦購(gòu)買(mǎi)了設(shè)置的大數(shù)量,則分銷(xiāo)商將無(wú)法購(gòu)買(mǎi)該門(mén)票,如果不設(shè)置數(shù)量,則默認(rèn)分銷(xiāo)商所能購(gòu)買(mǎi)的數(shù)量等于門(mén)票的總庫(kù)存?,F(xiàn)在出現(xiàn)的問(wèn)題是,當(dāng)分銷(xiāo)商所能購(gòu)買(mǎi)的該門(mén)票的數(shù)量為0時(shí),只要該門(mén)票的總庫(kù)存大于0,仍然可以購(gòu)買(mǎi)該門(mén)票,即設(shè)置的數(shù)量購(gòu)買(mǎi)限制存在bug。
收到這樣的消息,我一定時(shí)間測(cè)試該功能是否正常,結(jié)論如客戶(hù)所說(shuō),確實(shí)存在這樣的問(wèn)題,所以我就檢查所寫(xiě)的程序,程序是這個(gè)判斷的:
$company_ku_count = M('company_kucun')->where(Array('px_id'=>$px_id,'company_id'=>$member_main_id))->getField('ku_count');//得到分銷(xiāo)商票型的授權(quán)數(shù)量
if($company_ku_count==’’){...}//即沒(méi)有設(shè)置分銷(xiāo)商的門(mén)票數(shù)量,則分銷(xiāo)商可以購(gòu)買(mǎi)的數(shù)量為門(mén)票的總數(shù)量。
elseif($company_ku_count>0){...}//則設(shè)置分銷(xiāo)商的數(shù)量,大可購(gòu)買(mǎi)數(shù)量為$company_ku_count張。
看代碼似乎沒(méi)問(wèn)題,因?yàn)閮煞N情況都已經(jīng)做了判斷,所以花了不少時(shí)間在找bug,終于發(fā)if($company_ku_count==0){...}時(shí),if($company_ku_count==’’){...}同樣成立,也就是說(shuō)0是等于空字符的,嘗試使用if(emtpy($company_ku_count))來(lái)判斷,同樣得到的結(jié)果也是一樣,這下我有點(diǎn)懵,因?yàn)楫?dāng)$company_ku_count=0或$company_ku_count=’’時(shí),echo emtpy($company_ku_count)都輸出1,所以就上網(wǎng)查找如何才能區(qū)別0與空字符,最終找到另一個(gè)檢測(cè)變量的函數(shù)isset,isset與empty大的區(qū)別是,一個(gè)變量$company_ku_count存在等于null,即echo isset($company_ku_count) ,輸出空字符,而echo empty($company_ku_count)輸出1。并且只要$company_ku_count存在且不等于null,則輸出1. 例如$company_ku_count=100,則 isset($company_ku_count)輸出1,而emtpy($company_ku_count)輸出空字符。
由上面的結(jié)論可以解決這個(gè)問(wèn)題了,只要用$isok = isset($company_ku_count),if($isok==’’){...}//即分銷(xiāo)商沒(méi)有設(shè)置存在的情況,而其他情況則是已經(jīng)設(shè)置了購(gòu)買(mǎi)數(shù)量限制,這樣就解決客戶(hù)上所說(shuō)的Bug了,事情也到此為止。
為了學(xué)習(xí)isset與emtpy的知識(shí),我們可以回顧下兩者的區(qū)別:

結(jié)果

isset的返回值如下圖所示:
結(jié)果2

文章標(biāo)題:關(guān)于網(wǎng)站程序開(kāi)發(fā)里有關(guān)0與空字符、null的知識(shí)
文章出自:http://muchs.cn/news/240311.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)公司做網(wǎng)站、網(wǎng)站導(dǎo)航、軟件開(kāi)發(fā)、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司