PHP:array_search的坑

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$array=[
123,
465,
789
];

if(array_search(123,$array)){
echo "查询成功!".PHP_EOL;
}else{
echo "查询失败!".PHP_EOL;
}

上例将会输出:

1
$ 查询失败!

为什么是查询失败呢?$array中不是有123吗?
其实查询确实成功了,只不过返回的是0,会被当作false处理。

正确的使用方式如下:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$array=[
123,
465,
789
];

if(array_search(123,$array) !== false){
echo "查询成功!".PHP_EOL;
}else{
echo "查询失败!".PHP_EOL;
}