php关于使用strpos方法判断字符串中是否存在字符串的一些细节说明

需求如下:$str='身份证,422199209087877';

现在要判断这个字符串中存在子字符串 '身份证',开始时使用strpos($string,$search_string)如下判断

if(strpos($str,'身份证')==false){

  echo '没有找到该字符串'; 

}else{

  echo '找到该字符串';

}

测试发现结果打印出来是:'没有找到该字符串' 说明没有找到

然后我var_dump(strpos($str,'身份证')) 得到的结果是 int(0)

因为strpos()方法得到的是发现子字符串的开始位置,所以 找到了 0 这个位置,而0就等于false

所以这个方法当碰到查询的字符串在首位时会失效,解决办法是:

if(strpos($str,'身份证')===false){

  echo '没有找到该字符串';

}else{

  echo '找到该字符串';

}

当使用全等于时,0就不等于false了,所以就解决这个细节问题。

原文地址:https://www.cnblogs.com/luodao1991/p/3491625.html