当我使用PHP函数in_array()
时,我发现了一些奇怪的行为。我的数组如下:
$arr = [TRUE, "some string", "something else"];
现在如果我想检查数组中是否有
"test"
,显然没有,但是in_array()
仍然返回TRUE,为什么?$result = in_array("test", $arr);
var_dump($result); //<b>Output: bool(true)</b>
使用
array_search()
时会发生同样的事情:$result = array_search("test", $arr);
var_dump($result); //Output: int(0)
我认为数组中的TRUE值可能会自动导致函数在未检查数组其余部分的情况下返回TRUE,但我找不到任何文档说明这种非常奇怪的功能。
die(var_dump($results))
,以查看它返回的数组是什么。 - animuson