程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php in_array函數引發的一些思想

php in_array函數引發的一些思想

編輯:關於PHP編程

今天突然想到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 "=====";
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved