PHP 字符串 strcmp()函数
字符串比较是编程和开发中最常见的任务之一。strcmp()是PHP中的一个字符串比较函数。它是PHP的内建函数,它 区分大小写 ,意味着它将大写和小写视为不同。它用于比较两个字符串。此函数比较两个字符串并判断一个字符串是否大于、小于或等于另一个字符串。strcmp()函数是 二进制安全的字符串比较 。
注意:strcmp()函数对大小写敏感,同时也是二进制安全的字符串比较。
语法
strcoll(str1,str2);
参数
strcmp()函数接受两个字符串参数,在函数体中传递是必需的。需要传递的都是strcmp()函数中的必需参数。下面给出了以下参数的描述。
- $str1 - 它是strcmp()函数的第一个参数,用于比较。
- $str2 - 它是strcmp()函数的第二个参数,用于比较。
strcmp()函数返回的值
该函数根据比较随机返回整数值。
返回0 - 如果两个字符串相等,即str1 =str2,它返回0。
返回小于0 - 如果字符串1小于字符串2,即str1<str2,它返回一个负值。
返回大于0 - 如果字符串1大于字符串2,即str1 >str2,它返回一个正值。
注意:它计算字符串的ASCII值,然后比较两个字符串以判断它们是否相等、大于或小于。
strcoll()和strcmp()函数的区别
strcoll()和strcmp()都是PHP的字符串比较函数,但它们在某些方面稍有不同。
strcoll() 接受字节并使用区域设置转换它们,然后比较结果,而 strcmp() 按顺序逐个比较字符串的字节。
示例1
<?php
str1 = "hello php";str2 = "hello php";
echo strcoll(str1,str2). " because both strings are equal. ";
echo " </br>";
echo strcoll("Hello world", "Hello"). " because the first string is greater than the second string.";
?>
输出:
0 because both strings are equal.
6 because the first string is greater than the second string.
注意: 第二个字符串的比较返回了6的值,因为第一个字符串比第二个字符串长出6个字符,包括空格。
示例2
<?php
echo strcoll("Hello world", "hello"). " because the first string is less than the second string.";
echo "</br>";
echo strcoll("hello", "Hello"). " because the first string is greater than the second string.";
?>
输出:
-1 because the first string is less than the second string.
1 because the first string is greater than the second string.
示例3
<?php
echo strcmp("Hello ", "HELLO"). " because the first string is greater than the second string.";
echo "</br>";
echo strcmp("Hello world", "Hello world Hello"). " because the first string is less than the second string.";
?>
输出:
1 because the first string is greater than the second string.
-6 because the first string is less than the second string.
备注: 第二个字符串比较返回-6,因为第一个字符串比第二个字符串短6个字符,包括空格。
字符串1 | 字符串2 | 输出 | 解释 |
---|---|---|---|
Hello | Hello | 0 | 两个字符串相同且相等。 |
Hello | hello | -1 | 字符串1 < 字符串2,因为 H 的 ASCII 值是 72,h 的 ASCII 值是 104,所以 H < h。它区分大小写。 |
hello | Hello | 1 | 字符串1 > 字符串2,因为 H 的 ASCII 值是 72,h 的 ASCII 值是 104,所以 H < h。 |
Hello PHP | Hello | 4 | 字符串1 > 字符串2,因为字符串1比字符串2多了6个字符,包括空格。 |
hello | Hello PHP | 1 | 字符串1 > 字符串2,因为 H 的 ASCII 值是 72,h 的 ASCII 值是 104,所以 H < h。 |
Hello | Hello PHP | -4 | 字符串1 < 字符串2,因为字符串1比字符串2少了4个字符,包括空格。 |