Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组\u搜索无法找到以开头的字符串`@`_Php_Arrays - Fatal编程技术网

Php 数组\u搜索无法找到以开头的字符串`@`

Php 数组\u搜索无法找到以开头的字符串`@`,php,arrays,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',

这似乎对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

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

此函数可能返回布尔值FALSE,但也可能返回 计算结果为FALSE的非布尔值。请阅读关于 更多信息请参见布尔值。使用
==
操作符测试 此函数的返回值

@nickb是正确的: 它需要显式地与
false
进行比较,因为如果找到,它将返回找到的元素的键或索引,可以是
0
,在执行快捷方式
if($something)…
时,其计算结果为
false

php > var_dump($re);
array(2) {
  [0]=>
  string(4) "@max"
  [1]=>
  string(5) "Gezim"
}
php > var_dump(array_search('@max', $re) === false);
bool(false)

所以,换句话说,它被发现了

0是它所在的索引,不是吗?将返回值与
==FALSE
进行比较,看看会发生什么。