今天突然想到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函数并非每次都是按照我的思考逻辑进行整个元素匹配,还是我对数据类型认识的不够清楚呢?
PHP网络编程技术详解由浅入深,全面、系统地介绍了PHP开发技术,并提供了大量实例,供读者实战演练。另外,笔者专门为本书录制了相应的配套教学视频,以帮助读者更好地学习本书内容。这些视频和书中的实例源代码一起收录于配书光盘中。本书共分4篇。第1篇是PHP准备篇,介绍了PHP的优势、开发环境及安装;第2篇是PHP基础篇,介绍了PHP中的常量与变量、运算符与表达式、流程控制以及函数;第3篇是进阶篇,介绍
与此同时,战地还发现如果你的数组的第一个元素为0的时候,也会出现问题,看如下情况
立即学习“PHP免费学习笔记(深入)”;
| 代码如下 | 复制代码 |
|
$a=array(0,"m"); |
|










