相关疑难解决方法(0)

PHP in_array()/ array_search()奇怪的行为

我在使用PHP函数时发现了一些奇怪的行为in_array().我有这样一个数组:

$arr = [TRUE, "some string", "something else"];
Run Code Online (Sandbox Code Playgroud)

现在,如果我想检查是否"test"在数组中它显然不是,但in_array()仍然返回TRUE,为什么呢?

$result = in_array("test", $arr);
var_dump($result);  //Output: bool(true)
Run Code Online (Sandbox Code Playgroud)

使用时会发生同样的事情array_search():

$result = array_search("test", $arr);
var_dump($result);  //Output: int(0)
Run Code Online (Sandbox Code Playgroud)

我想也许数组中的值TRUE会自动导致函数为每个结果返回TRUE,而不检查数组的其余部分,但我找不到任何可能表明非常奇怪的功能的文档.

php arrays boolean

5
推荐指数
1
解决办法
1739
查看次数

为什么PHP in_array函数总是返回true

我的in_array功能有问题.

这是我的array:键可以是字符串或int的混合,就像这个例子.

<?php

$array = array(
    "a" => true,
    "b" => true,
    "c" => true,
    "d" => true,
    0 => "Code",
    1 => "Time",
    2 => "Other"
);

var_dump($array);

if ( in_array("Test", $array) ) { echo "found"; }
Run Code Online (Sandbox Code Playgroud)

此代码打印始终found.

为什么?

php arrays

1
推荐指数
1
解决办法
121
查看次数

标签 统计

arrays ×2

php ×2

boolean ×1