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)

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

时间: 2024-10-15 23:28:09

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

javascript消除字符串两边空格的两种方式,面向对象和函数式编程

主要是javascript中消除字符串空格,比较两种方式的不同 //面向对象,消除字符串两边空格 String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); }; //去左右空格的函数; function trim(s){ return s.replace(/(^\s*)|(\s*$)/g, ""); }调用消除空格的两种方式. var defualtPhone =

文件编码和文件内的字符串字面值编码是两个概念

我们知道,CALabel的字符串使用的是UTF8编码,通常在xcode下,直接CALabel *p = ...; p->setText("汉字"),显示汉字是没有任何问题的,但是,在VS2013中却显示的是乱码.很多人在群里面问了,我都答:请使用UTF8编码.他说,我的文件是UTF8格式的啊.呵呵,没那么简单好吗,文件编码和字符串字面值编码是两个概念. VS2013的一条预编译指令#pragma execution_character_set("utf-8")

第5章 字符串 判断截取的两个字符串相同

1.第一种方法 package five; public class Fivetwozero { public static void main(String[] args){ //定义两个字符串 String str="hello world"; String str1="Hello java"; //截取这两个字符串的部分字符 String substr=str.substring(0, 4); String substr1=str1.substring(0,

从两个字符串中找出最大公共子字符串

从两个字符串(str_1,str_2)中找出最大公共子字符串(comString)的方法为: 选取长度较短的字符串(假设str_1较短)做截取: 从字符串中截取长度为1的子字符串: 每个子字符串都在str_2中做查询,查询到则将该字符串赋予comString: 从字符串中截取长度为2的子字符串,重复3: 从字符串中截取长度为n的子字符串,重复3: 结束. 截取字符串例子: 实例: [Java] /** * create by lijiaman on 2016-09-24 * 题目:求两个字符串的

Java算法——求出两个字符串的最长公共字符串

问题:有两个字符串str1和str2,求出两个字符串中最长公共字符串. 例如:“acbbsdef”和"abbsced"的最长公共字符串是“bbs” 算法思路: 1.把两个字符串分别以行和列组成一个二维矩阵. 2.比较二维矩阵中行和列对应的每个点的字符是否相同,是设置这个点为1,否设置这个点为0. 3.通过查找值为1的最长对角线来找到最长公共字符串. 通过上面str1和str2两个字符串,分别得出以行和列组成的一个二维矩阵如下图: 从上图可以看到,str1和str2共有3个公共子串&qu

给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串

1 /* 2 * 给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串,其实也就是变位词问题 3 * 比如说 a='abc' b='acb'是可以通过a变成b的 4 * 思路; 5 * 1.应进行分析,变位词区分大小写吗?比如God和dog是变位词?还需要考虑空格问题? 6 * 在这里我们假定是区分大小写的. 7 * 2.比较两个字符串时,如果它们的长度都不相等了,那肯定不是变位词 8 * 9 * 10 * */ 11 12 public class IsSameString

(算法)字符串中首先出现两次的字符

题目: 给定一个字符串,请写一段代码找出这个字符串中首先出现两次的那个字符. 例如字符串为"qywyer23tdd",输出为y. 思路: 1.从头到尾遍历字符串str,如果str[i]为首先出现两次的字符,则满足的条件是str[i]==str[j](0<=j<i); 2.遍历字符串时,通过类似hash数组来统计字符出现的次数,由于char字符有256个,为0-255,所以需创建一个256大小的数组,即int A[256]. 代码: char firstCharAppearT

两种方法判断一个字符串是否为另外一个字符串旋转之后的字符串。(C语言)

例如:给定s1 = AABCD和s2 = BCDAA,返回1给定s1 = abcd和s2 = ACBD,返回0. AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAA 第一种:通过其中一个字符串向左移动确定第二个字符串 #include<stdio.h> #include<string.h> void left_move(char *str, int k) { while (k != 0) { char *cur = str;//必须需要另一个指针存储首地址 c

String的两个API,判断指定字符串是否包含另一字符串,在字符串中删除指定字符串。

// 在字符串中删除指定字符串. String phoneNum="1795112345"; phoneNum = phoneNum.replace("17951", ""); System.out.println(phoneNum); //判断指定字符串是否包含另一字符串 String phoneNum="1795112345"; String IpNum="17951"; return phoneNum