Php 数组\u搜索无法找到以开头的字符串`@`
这似乎对PHP来说也很奇怪。我正在数组中搜索以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',
@
开头的字符串,它总是返回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
进行比较,看看会发生什么。