PHP 字符串 strncasecmp()函数
strncasecmp()是PHP的一个内置函数,它是不区分大小写的。它用于比较两个字符串的前n个字符。此函数类似于strcasecmp()函数,但有一个区别。在strncasecmp()中,我们可以指定要比较的字符串的字符数,而strcasecmp()不包含长度参数。strncasecmp()是一个二进制安全的函数。
注意: strncasecmp()是一个不区分大小写和二进制安全的函数。
语法
strncasecmp()函数的语法如下:
strncasecmp( string1,string2, $length)
所有三个参数在此函数中都是必需的。它在比较后返回一个整数值。
参数
$string1 (必需): 这是用于比较的第一个字符串。它是一个必需的参数。
$string2 (必需): 这是用于比较的第二个必需字符串。
$length: 这是此函数的最后和必需参数,指定要用于比较的字符串的长度。
返回值
返回值 | 描述 |
---|---|
返回 < 0 | 如果string1小于string2,即$string < $string2 。 |
返回 0 | 如果两个字符串相等。 |
返回 > 0 | 如果string1大于string2,即$string > $string2 。 |
示例
下面给出了一些示例,您可以从中学习在程序中对此函数的实际应用。
Input:
string1 = "Hello World",string2 = "HELLO ", len = 5; //case-insensitive
Output: 0
Input:string1 = "Hello World ", string2 = "Hello ",len = 11;
Output: 6
Input:
string1 = "Hello PHP! ",string2 = "PHP", len = 9
Output: -8
Input:string1 = "PHP! ", string2 = "Hello PHP",len = 9
Output: 8
Input:
string1 = "Hello ",string2 = "Hello PHP", $len = 9
Output: -4
以下是一些详细的示例 –
示例1
这是strncasecmp()的简单示例,它展示了它是不区分大小写的函数。
<?php
string1 = "Welcome to javaTpoint";string2 = "WELCOME"; //case-insensitive
len = 7;
//Both strings are equal
echo strncasecmp(string1, string2,len);
?>
输出结果:
0
示例2
<?php
string1 = "Welcome to javaTpoint";string2 = "Welcome";
len = 20;
//string1 is greater than string2
echo strncasecmp(string1, string2,len);
?>
输出:
在这个示例中,函数返回了13,因为string1大于string2。
13
示例3
<?php
string1 = "Welcome";string2 = "Welcome to javaTpoint";
len = 20;
//string1 is less than string2
echo strncasecmp(string1, string2,len);
?>
输出:
在这个示例中,函数返回了-13,因为string1小于string2。
-13
示例4
<?php
string1 = "Welcome to javaTpoint";string2 = "Hello";
len = 20;
//string1 is greater than string2 and also not same
echo strncasecmp(string1, string2,len);
?>
输出:
15
示例 5
<?php
string1 = "Hello World";string2 = "Hello earth";
len = 11; //string1 is not same as string2.
echo strncasecmp(string1, string2,len);
?>
输出:
在上面的示例中,这个函数返回了18,因为string2大于string1。e的ASCII值(101)大于W(87)。
18
示例6
<?php
string1 = "Good afternoon";string2 = "Good afternoor";
len = 14;
//string2 has a character (r) with higher ASCII value, so, output would be <0
echo strncasecmp(string1, string2,len);
?>
输出:
在此示例中,函数返回-4,因为string1小于string2。在string2中,下午后面的n被替换为r。r的ASCII值(114)大于n(110),因此较小。
-4
示例7
如果我们在函数中不提供比较的长度,那么将会显示错误。
<?php
string1 = "Good afternoon";string2 = "Good afternoor";
echo strncasecmp(string1,string2);
?>
输出:
我们可以看到输出结果中出现了一个警告,即函数预期需要三个参数,而程序中只传递了两个参数。