PHP的in_array数组 第三个参数true/false
原创
©著作权归作者所有:来自51CTO博客作者qq58fdc80357c56的原创作品,请联系作者获取转载授权,否则将追究法律责任
<?php
$a = "1a";
$b = array(1,2,3);
if (in_array($a,$b)){
echo "true";
}else{
echo "false";
}
这段代码相信大家都会选false
但是真实结果是 true;没想到吧
说明
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
参数 描述
needle 必需。 规定要在数组搜索的值。
haystack 必需。 规定要搜索的数组。
strict 可选。 如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。
说明
如果给定的值 search 存在于数组 array 中则返回 true。如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true。
如果没有在数组中找到参数,函数返回 false。
注释:如果 search 参数是字符串,且 type 参数设置为 true,则搜索区分大小写。
所以
<?php
$a = "1a";
$b = array(1,2,3);
if (in_array($a,$b,true)){
echo "true";
}else{
echo "false";
}
在测试一下
<?php
$Sex = array('男','女');
if(in_array(0, $Sex)){
echo "1";
}else{
echo "2";
}
if(in_array('0', $Sex)){
echo "1";
}else{
echo "2";
}
if(in_array('男', $Sex)){
echo "1";
} else {
echo "2";
}
if(in_array(0, $Sex, true)){
echo "1";
}else{
echo "2";
}
结果竟然是: 1212
好了 自己面向墙壁测试吧