php的strpos()函数的返回值false与0问题

13,665次阅读
一条评论

共计 401 个字符,预计需要花费 2 分钟才能阅读完成。

php中的strpos函数定义说明如下:

int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

返回 needle 在 haystack 中首次出现的数字位置,以整型返回位置信息。如果没找到 needle, strpos() 将返回布尔型的 FALSE 值。

存在问题:

如果$needle出现在$haystack头部,则返回值为0。在不严格的判断中,0 = false,这样就无法区分是否找到。

解决方法:

使用符号“===”而不是“==”进行判断。
判断符号 “==”会转换类型再进行比较,而更严格的符号“===”会先判断类型是否相同,然后才进行比较。

如下举例:

/*
判断字符串是否存在的函数
*/
function strexists($haystack, $needle) {
return !(strpos($haystack, $needle) === FALSE);//注意这里的"==="
}

正文完
 0
任侠
版权声明:本站原创文章,由 任侠 于2012-09-05发表,共计401字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(一条评论)
验证码
arwant 评论达人 LV.1
2017-09-06 12:03:07 回复
Google Chrome 60.0.3112.113 Google Chrome 60.0.3112.113 Windows 10 x64 Edition Windows 10 x64 Edition

return 之后还是无法看到0

 Windows  Chrome  中国台湾省中华电信