今天突然想到php中的in_array函數有個其怪的用法,下面我們來看看這個用法,有需要的朋友簡單的參考一下,代碼如下:
$a=array("1,2,3" ,"4");
if(in_array(1,$a)){
echo "條件成立";
}
這個條件果然是成立的邏輯上的那個條件上只有在參數1的值為」1,2,3「和為4的時候才成立,但是奇怪的是他居然成立了,戰地隨即測試瞭如下情況,代碼如下:
$a=array("a ,2,3","4");
if(in_array('a',$a)){
echo "條件不成立的;在第一個測試用例下,如果把參數1寫成'1'條件也是不成立的,得出的結論是:
在PHP中如果第一個參數為數字——不加引號的數字啊,第二個數組參數包含有以該數字開頭的字串的話不管第一個參數是否為第二個參數的完整元素,都會返回真值,也就是說,in_array函數並非每次都是按照我的思考邏輯進行整個元素匹配,還是我對資料類型認識的不夠清楚呢?
同時,還發現如果你的數組的第一個元素為0的時候,也會出現問題,看如下情況,代碼如下:
$a=array(0,"m");
if(in_array('mc6',$a))
{
echo "=====";
}//開源代碼phpfensi.com
}//開源代碼phpfensi.com