本文較為深入的探究了php中in_array函數(shù)用法。分享給大家供大家參考。具體如下:
今天突然想到php中的in_array函數(shù)有個(gè)其怪的用法,下面我們來看看這個(gè)用法,有需要的朋友簡單的參考一下,代碼如下:
if(in_array(1,$a)){
echo "條件成立";
}
這個(gè)條件果然是成立的,按照我的思考邏輯上邊的那個(gè)條件只有在參數(shù)1的值為“1,2,3”和為4的時(shí)候才成立,但是奇怪的是他居然成立了,隨即測(cè)試了如下情況,代碼如下:
if(in_array('a',$a)){
echo "條件不成立";
}
這個(gè)是不成立的,在第一個(gè)測(cè)試用例下,如果把參數(shù)1寫成'1'條件也是不成立的,得出的結(jié)論是:
在PHP中如果第一個(gè)參數(shù)為數(shù)字——不加引號(hào)的數(shù)字啊,第二個(gè)數(shù)組參數(shù)包含有以該數(shù)字開頭的字符串的話不管第一個(gè)參數(shù)是否為第二個(gè)參數(shù)的完整元素,都會(huì)返回真值,也就是說,in_array函數(shù)并非每次都是按照我的思考邏輯進(jìn)行整個(gè)元素匹配,還是我對(duì)數(shù)據(jù)類型認(rèn)識(shí)的不夠清楚呢?
與此同時(shí),還發(fā)現(xiàn)如果你的數(shù)組的第一個(gè)元素為0的時(shí)候,也會(huì)出現(xiàn)問題,看如下情況,代碼如下:
if(in_array('mc6',$a))
{
echo "=====";
}
感興趣的朋友可以測(cè)試運(yùn)行一下本文所述實(shí)例,相信會(huì)有新的收獲!
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。