in_array注意细节
in_array — 检查数组中是否存在某个值
说明
bool
in_array(
mixed
$needle
,
array$haystack
[,
bool $strict
] )
在 haystack
中搜索 needle
,如果找到则返回 TRUE
,否则返回 FALSE
。
如果第三个参数 strict
的值为 TRUE
则 in_array() 函数还会检查 needle
的类型是否和 haystack
中的相同。
注:这里如果in_array()不提供第三个参数的话,类似in_array(0, array("hello", "world"))的输出就会为true,为避免出现这种问题,使用in_array()时请务必提供第三个参数true,以避免隐式类型转换。
请见如下示例:
var_dump(in_array(0, array("hello", "world"))); // "true" 隐式类型转换,使0 == "hello"
var_dump(in_array(0, array("hello", "world"))); // "false" 无隐式类型转换,使0 === "hello"