array_search找不到以`@`开头的字符串

时间:2018-10-04 01:13:31

标签: php arrays

即使对于PHP,这似乎也很奇怪。我正在搜索以@开头的字符串,该字符串始终返回false:

php > var_dump($re)
php > ;
array(2) {
  [0]=>
  string(12) "@MaxyMixalot"
  [1]=>
  string(5) "GEzim"
}
php > print(array_search('GEzim', $re));
1
php > print(array_search('@MaxyMixalot', $re));
0

1 个答案:

答案 0 :(得分:2)

因此,我没有注意到PHP.net上的警告:

  

此函数可能返回布尔FALSE,但也可能返回   非布尔值,其值为FALSE。请阅读以下内容   有关更多信息的布尔值。使用===运算符来测试   该函数的返回值。

@nickb是正确的: 需要将其与false进行显式比较,因为如果找到它,它会返回找到的元素的关键字或索引,并且可以是0,在执行快捷方式{时,其值为false {1}}。

if ($something)...

换句话说,找到了!