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