http://docs.php.net/manual/zh/function.array-search.php
mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
strict
如果可选的第三个参数 strict 为 TRUE,则 array_search() 将在 haystack 中检查完全相同的元素。 这意味着同样检查 haystack 里 needle 的 类型,并且对象需是同一个实例。
问题:
这个函数,第3个参数:$strict = false,有什么作用?
给个实例。
mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
strict
如果可选的第三个参数 strict 为 TRUE,则 array_search() 将在 haystack 中检查完全相同的元素。 这意味着同样检查 haystack 里 needle 的 类型,并且对象需是同一个实例。
问题:
这个函数,第3个参数:$strict = false,有什么作用?
给个实例。
<?
$x=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>"q2","4"=>"Q2","5"=>"q2");
$y=array_search("q2",$x);
echo $y;
echo "\r\n";
$xx=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>"q2","4"=>"Q2","5"=>"q2");
$yy=array_search("q2",$xx,$strict =false);
echo $yy;
echo "\r\n";
$xxx=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>"q2","4"=>"Q2","5"=>"q2");
$yyy=array_search("q2",$xxx,$strict =true);
echo $yyy;
echo "\r\n";?>上面的代码加了参数:,$strict =true或,$strict =false
没什么区别?
$x=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>"2","4"=>"Q2","5"=>"q2");
$y=array_search("2",$x);
echo $y;
echo "<hr>";$xx=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>2,"4"=>"Q2","5"=>"q2");
$yy=array_search("2",$xx,$strict =false);
echo $yy;
echo "<hr>";$xxx=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>2,"4"=>"Q2","5"=>"q2");
$yyy=array_search("2",$xxx,$strict =true);
echo $yyy;
echo "<hr>";$xxxx=array("0"=>"Q1","1"=>"Q2","2"=>"Q3","3"=>2,"4"=>"Q2","5"=>"q2");
$yyyy=array_search(2,$xxx,$strict =true);
echo $yyyy;
echo "<hr>";我把q2换成2.。然后分别用false 和 true来输出。。第三个是不输出的。。为true时是类型和值都得一样。但第三个是检查“2”。。而数组中的是2,。类型不同所以没输出,打印的话就为false。。为false时忽略类型,所以二个有输出
var_dump(array_search('2', $ar, true)); //bool(false)
var_dump(array_search(2, $ar)); //int(1)
echo array_search(5,$a);不用判断值的类型 所以字符串"5" 匹配成功
echo '<br>';
echo array_search(5,$a,true);需要判断值的类型 所以字符串"5" 匹配不成功 数字5匹配成功
in_array()函数,第3个参数,也是这样作用?
为什么都不看呢?神仙?
in_array()函数,第3个参数,也是这样作用?