首页 > 代码库 > PHP两个字符串比较(人为出错),两字符串类型和数据表面相等,但strcmp()结果不为0

PHP两个字符串比较(人为出错),两字符串类型和数据表面相等,但strcmp()结果不为0


PHP中,比较两个字符串是否相等用:strcmp();


PHP strcmp() 函数

PHP String 函数

定义和用法

strcmp() 函数比较两个字符串。

该函数返回:

  • 0 - 如果两个字符串相等
  • <0 - 如果 string1 小于 string2
  • >0 - 如果 string1 大于 string2

语法

strcmp(string1,string2)
参数 描述
string1 必需。规定要比较的第一个字符串。
string2 必需。规定要比较的第二个字符串。

提示和注释

注释:该函数是二进制安全的,且对大小写敏感。


来源: <http://www.w3school.com.cn/php/func_string_strcmp.asp>
 


个人问题:

现有字符串 $a 和 $b
通过 echo 输出,两个字符串数据值相等
通过 gettype() 输出,两个字符串的数据类型相同且为 string

但 strcmp($a, $b) 却不等于 0 ;

问题解决:

通过 strlen() 分别查看 $a 和 $b 的字符串长度,发现长度不相等

我原本是数据库操作,$a 为插入数据库中的字符串,$b 为输入的字符串
通过比较,发现 $a 长度比 $b 大1,故推测是数据库插入操作可能出现了问题
经查证,是插入语句中多了一个空格









来自为知笔记(Wiz)