今天突然想到php中的in_array函數(shù)有個其怪的用法,下面我們來看看這個用法,有需要的朋友簡單的參考一下,代碼如下:
- $a=array("1,2,3","4");
- if(in_array(1,$a)){
- echo "條件成立";
- }
這個條件果然是成立的,按照我的思考邏輯上邊的那個條件只有在參數(shù)1的值為”1,2,3“和為4的時候才成立,但是奇怪的是他居然成立了,戰(zhàn)地隨即測試了如下情況,代碼如下:
- $a=array("a,2,3","4");
- if(in_array('a',$a)){
- echo "條件不成立";
- }
這個是不成立的,在第一個測試用例下,如果把參數(shù)1寫成’1’條件也是不成立的,得出的結(jié)論是:
在PHP中如果第一個參數(shù)為數(shù)字——不加引號的數(shù)字啊,第二個數(shù)組參數(shù)包含有以該數(shù)字開頭的字符串的話不管第一個參數(shù)是否為第二個參數(shù)的完整元素,都會返回真值,也就是說,in_array函數(shù)并非每次都是按照我的思考邏輯進(jìn)行整個元素匹配,還是我對數(shù)據(jù)類型認(rèn)識的不夠清楚呢?
與此同時,還發(fā)現(xiàn)如果你的數(shù)組的第一個元素為0的時候,也會出現(xiàn)問題,看如下情況,代碼如下:
- $a=array(0,"m");
- if(in_array('mc6',$a))
- {
- echo "=====";
- }//開源代碼Vevb.com
新聞熱點(diǎn)
疑難解答