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);//注意这里的"===" }
return 之后还是无法看到0