php in_array函数引发的一些思想
2013-09-05 19:02
344 查看
今天突然想到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 "=====";
}
代码如下
$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 "=====";
}
相关文章推荐
- phpsession:PHP中如何保持SESSION以及由此引发的一些研究--转
- 类似php的js数组的in_array函数自定义方法
- 类似php的js数组的in_array函数自定义方法
- PHP保持SESSION问题以及由SESSION性能引发的一些思考
- php中in_array函数用法分析
- PHP中in_array函数使用的问题与解决办法
- 由in_array()函数引发的对PHP比较运算中自动转型的思考
- PHP使用in_array函数检查数组中是否存在某个值
- PHP中in_array函数使用的问题与解决办法
- 类似php的js数组的in_array函数自定义方法
- Meet-in-the-middle思想的一些应用
- php中的in_array函数
- php -- in_array函数
- php中的一些不常见的问题foreach/in_array[开发篇]
- 如何在PHP中保持SESSION以及由此引发的一些思考
- PHP中如何保持SESSION以及由此引发的一些思考
- PHP相关系列 - PHP in_array函数的一个危险用法
- 自定义类似php的js数组的in_array函数
- 转:PHP中如何保持SESSION以及由此引发的一些思考
- PHP中in_array函数使用的问题与解决办法