基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
发布时间:2020-12-13 06:17:57 所属栏目:PHP教程 来源:网络整理
导读:使用“===”来判断,至于它和“==”的区别,简单来说就是前者强调“identical(相同的,完全相同)”类型也要求一样;后者要求“equal(相等)”,值相同就可以了。或者使用strcmp来判断,但是这个能够告诉你两个字符串是否相等,但是无法告诉你在哪里不同。一
使用“===”来判断,至于它和“==”的区别,简单来说就是前者强调“identical(相同的,完全相同)”类型也要求一样;后者要求“equal(相等)”,值相同就可以了。或者使用strcmp来判断,但是这个能够告诉你两个字符串是否相等,但是无法告诉你在哪里不同。一般能用 !=,== 比较两个对象是否相等,之所以说是两个对象,是因为他们不一定全部为字符串,也能为整型等等。 比如 代码如下: $a = "joe"; $b = "jerry"; if ($a != $b) { echo "不相等"; } else { echo "相等"; } 如果用 !==,=== 比较的话,两个对象的类型要严格相等才能返回true;否则用==,!=则会将字符串自动转换成相应的类型,以便进行比较. 代码如下: 22 == "22"; // 返回 true
22 === "22"; // 返回falsePHP 用于字符串比较的函数:strcmp(),strcasecmp(),strncasecmp(),strncmp(),他们都是 如果前者比后者大,则返回大于0 的整数;如果前者比后者小,则返回小于0 的整数;如果两者相等,则返回0. 1)strcmp是用于 区分大小写 (即大小写敏感)的字符串比较:2)echo strcmp("abcdd","abcde"); // 返回 1 (>0),比较的是 "b"和"b"3)strcasecmp用于不区分大小写的字符串比较:4)echo strcasecmp("abcdd","abcde"); // 返回 -1 (<0),比较的是"d"和"e"strncmp用于比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度: echo strncmp("abcdd","abcde",3); // 返回 1 (>0),比较了 abc 和 abc strncasecmp用于不区分大小写的比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度: echo strncasecmp("abcdd",3); // 返回 0,比较了 abc 和 abc,由于不区分大小写,所以两者是相同的。 更有一种情况是单单比较字符串大小,达不到我们预定的需求,比如照常理 10.gif 会比 5.gif 大,但如果应用上面几个函数,就会返回 -1,即表示 10.gif比5.gif,针对这种情况,php提供了两个自然对比的函数strnatcmp,strnatcasecmp: echo strnatcmp("10.gif","5.gif"); // 返回 1 (>0) echo strnatcasecmp("10.gif","5.gif"); // 返回 1 (>0) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |