php专区

 首页 > php专区 > PHP应用 > php函数大全 > php in_array函数引发的一些思想

php in_array函数引发的一些思想

分享到:
【字体:
导读:
          今天突然想到php中的in_array函数有个其怪的用法,下面我们来看看这个用法以,有需要的朋友简单的参考一下。 代码如下复制代码 $a=array( "1,2,3 ", "4 ");if(in_array(1,$a)){ echo "条件成立 ";} 这

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

分享到:
php ltrim() rtrim() trim()删除字符空格
php中的trim函数不能像asp中的一样,可以自动删除所有空格,它专业提供了 rtrim() trim()函数,有需要的可以参考。    代码如下 复制代码
linux中fgetcsv取得的数组元素为空字符串...
分享一篇关于linux中fgetcsv取得的数组元素为空字符串的解决方法的教程,有需要的朋友可以参考一下下哈。   使用CSV导入数据的时候,我们通常用的是Windows系统,使用GBK在Windows的Excel中编辑. 但服务器上,很多使用Linux服务器,源程序使用UTF-8,这样很容易产生字符编码的问题. 如果仅仅将CSV文件转码为UTF-8,这样在Win...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……