The
Strcmp() function performs a binary-safe comparison of two strings and is case-sensitive.
Compare two strings in a case-sensitive manner
The Strcmp() function performs a binary-safe comparison of two strings and is case-sensitive. Its form is:
int strcmp (string str1, string str2)
One of the following possible values will be returned based on the comparison result.
•Return 0 if str1 and str2 are equal.
•If str1 is less than str2, return -1.
•If str1 is greater than str2, return 1.
Websites often require users to be registered to enter and confirm the password they choose, reducing the possibility of generating incorrect passwords due to typing errors. Because passwords are usually case-sensitive, strcmp() is very suitable for comparing these two passwords:
The code is as follows:
<?php $pswd = "supersecret"; $pswd2 = "supersecret"; if (strcmp($pswd,$pswd2) != 0) echo "Your passwords do not match!"; else echo "Passwords match!"; ?>
Note that for strcmp (), Strings must match exactly to be considered equal. For example, Supersecret is different from supersecret. If you want to compare two strings in a case-insensitive manner, consider strcasecmp () described below.
Another confusing point about this function is that it returns 0 when two strings are equal. This is different from using the ==operator to complete string comparison, as follows:
if ($str1 == $str2)
The two methods have the same goal, Both compare two strings, but remember that the values they return are different.
Example code:
The code is as follows:
<?php echo strcmp("Hello world!","Hello world!"); //返回0 ?>
The following is a better strcmp example code:
PHP strcmp code to control access based on IP address
Simple addition:
The comparison between str1 and str2 here is actually a comparison of the ASCII values of str1 and str2
For example:
strcmp("A","a"); The return value is -1
//The ASCII value of a is 97 The ASCII value of A is 65
It can also be seen from this example When strcmp() is used to compare strings, it is case-sensitive.
Let’s look at the in-depth understanding of strcmp:
strcmp("abc","abc"); At this time, the string The return value for equality is 0
Let’s change strcmp("aBc", "abc"); at this time, it is not equal and the return value is -1
Since strcmp compares aBc and abc one by one, two characters The first string is compared with the first one, and the
second string is compared with the second one... When the ASCII values of each comparison are equal, the next pair of
characters can be compared. . Therefore, if the second pair B and b are compared and they are not equal, then the comparison stops and a return value appears.
if ("abc">"aBC") The comparison principle is the same
The above is the detailed content of Instructions for using php strcmp() function. For more information, please follow other related articles on the PHP Chinese website!