【www.gdgbn.com--安卓教程】

var_dump(in_array(0, array("s" ));

这句话的结果是bool(true)。

因为in_array会将0 和"s" 进行比较,0是number类型,"s"是string类型,根据php教程 manual 中“comparison operators” 一章的说明可知,number 和string进行

比较的时候,会先将string类型首先转化为number,然后再进行比较操作。 "s"转化为number的结果为0,而0 == 0 的结果是true,所以in_array(0, array("s", "ss"))的结果也是true

如果把in_array 的第三个参数strict设置为 true,比较的时候 就会判断值和类型是否都相当。如果都相当的话,才会返回true,否则返回false.

关于php in_array语法

$a = array("1.10", 12.4, 1.13);

if (in_array("12.4", $a, true)) {
    echo ""12.4" found with strict checkn";
}

if (in_array(1.13, $a, true)) {
    echo "1.13 found with strict checkn";
}
?>

本文来源:http://www.gdgbn.com/shoujikaifa/25957/