PHP中in_array函數(shù)使用的問(wèn)題與解決辦法
先介紹一下需求背景:
發(fā)票方式:
0=捐贈(zèng)(不要問(wèn)我為什么,歷史原因)
1=對(duì)中寄送
2=索取
3=電子發(fā)票
現(xiàn)在要對(duì)用戶提交的數(shù)據(jù)進(jìn)行檢測(cè):
php;auto-links:false;">if(!in_array($_POST['invoice_action'], array(0,1,2,3))){
throw new Exception('請(qǐng)選擇正確的發(fā)票方式');
}
這個(gè)時(shí)候出現(xiàn)一個(gè)問(wèn)題,如果壓根就不存在$_POST[‘invoice_action']這個(gè)值,為什么沒(méi)有拋出異常?
經(jīng)確認(rèn),這就是PHP作為弱類型語(yǔ)言的一個(gè)坑,沒(méi)錯(cuò),這是一個(gè)坑.
看一下這組代碼:
echo in_array('', array(0)) ? 1 : 0; // 結(jié)果:1
echo in_array(null, array(0)) ? 1 : 0; // 結(jié)果:1
echo in_array(false, array(0)) ? 1 : 0; // 結(jié)果:1
這么大一個(gè)坑,我們要怎么繞過(guò)或者填起呢?
方法一:in_array支持第三個(gè)參數(shù),強(qiáng)制對(duì)數(shù)據(jù)類型檢測(cè)
echo in_array('', array(0), true) ? 1 : 0; // 結(jié)果:0
echo in_array(null, array(0), true) ? 1 : 0; // 結(jié)果:0
echo in_array(false, array(0), true) ? 1 : 0; // 結(jié)果:0
方法二:依然是數(shù)據(jù)類型方向,把數(shù)組中的0改為字符串
echo in_array('', array('0'), true) ? 1 : 0; // 結(jié)果:0
echo in_array(null, array('0'), true) ? 1 : 0; // 結(jié)果:0
echo in_array(false, array('0'), true) ? 1 : 0; // 結(jié)果:0
總結(jié)
以上就是關(guān)于PHP中in_array函數(shù)使用時(shí)遇到的問(wèn)題與解決辦法,希望這篇文章對(duì)同樣遇到這個(gè)問(wèn)題的朋友能有所幫助,如果大家有疑問(wèn)可以留言交流。
相關(guān)文章
解析Win7 XAMPP apache無(wú)法啟動(dòng)的問(wèn)題
本篇文章是對(duì)Win7 XAMPP apache無(wú)法啟動(dòng)的問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP實(shí)現(xiàn)的簡(jiǎn)單AES加密解密算法實(shí)例
這篇文章主要介紹了PHP實(shí)現(xiàn)的簡(jiǎn)單AES加密解密算法,結(jié)合具體實(shí)例形式分析了php基于mcrypt_encrypt、bin2hex、mcrypt_decrypt等方法進(jìn)行字符串加密解密的相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
使用PHP解決http請(qǐng)求超時(shí)的問(wèn)題
當(dāng)進(jìn)行HTTP請(qǐng)求時(shí),有時(shí)候可能會(huì)遇到請(qǐng)求超時(shí)的情況,為了解決這個(gè)問(wèn)題,本文給大家介紹了如何使用PHP解決http請(qǐng)求超時(shí)的問(wèn)題,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
php下刪除字符串中HTML標(biāo)簽的函數(shù)
一個(gè)可以刪除字符串中html標(biāo)記的php函數(shù)2008-08-08
PHP開(kāi)發(fā)注意事項(xiàng)總結(jié)
這篇文章主要介紹了PHP開(kāi)發(fā)注意事項(xiàng)總結(jié),非常詳細(xì),需要的朋友可以參考下2015-02-02
php中利用explode函數(shù)分割字符串到數(shù)組
這篇文章主要介紹了php中利用explode函數(shù)分割字符串到數(shù)組,需要的朋友可以參考下2014-02-02
24條貨真價(jià)實(shí)的PHP代碼優(yōu)化技巧
這篇文章主要為大家分享了24條貨真價(jià)實(shí)的PHP代碼優(yōu)化技巧,幫助大家更好的進(jìn)行PHP項(xiàng)目開(kāi)發(fā),感興趣的小伙伴們可以參考一下2016-07-07

