【发布时间】:2011-02-13 22:19:17
【问题描述】:
我在使用 PHP 函数 in_array() 时发现了一些奇怪的行为。我有一个这样的数组:
$arr = [TRUE, "some string", "something else"];
现在如果我想检查 "test" 是否在数组中,显然不是,但 in_array() 仍然返回 TRUE,这是为什么呢?
$result = in_array("test", $arr);
var_dump($result); //Output: bool(true)
使用array_search()时也会发生同样的事情:
$result = array_search("test", $arr);
var_dump($result); //Output: int(0)
我认为数组中的值 TRUE 可能会自动导致函数在不检查数组的其余部分的情况下为每个结果返回 TRUE,但我找不到任何文档表明这种非常奇怪的功能。
【问题讨论】:
-
能否提供更完整的代码示例?您发布的代码不是很有帮助。你可能刚刚犯了一个作业错误或其他什么......
-
在运行检查之前将结果变量分配给该行。然后我在该行之后添加了
die(var_dump($results)),以查看它返回的数组。