La fonction
Strcmp() effectue une comparaison binaire sécurisée et sensible à la casse de deux chaînes.
Compare deux chaînes en respectant la casse.
La fonction Strcmp() effectue une comparaison binaire sécurisée de deux chaînes, en respectant la casse. Sa forme est :
int strcmp ( string str1 , string str2 )
L'une des valeurs possibles suivantes sera renvoyée en fonction du résultat de la comparaison.
•Renvoyer 0 si str1 et str2 sont égaux.
•Si str1 est inférieur à str2, renvoie -1.
•Renvoyer 1 si str1 est supérieur à str2.
Les sites Web exigent souvent que l'utilisateur soit enregistré pour saisir et confirmer le mot de passe choisi, réduisant ainsi la possibilité de générer un mot de passe incorrect en raison d'erreurs de frappe. Comme les mots de passe sont généralement sensibles à la casse, strcmp() est très approprié pour comparer ces deux mots de passe :
Le code est le suivant :
<?php $pswd = "supersecret"; $pswd2 = "supersecret"; if (strcmp($pswd,$pswd2) != 0) echo "Your passwords do not match!"; else echo "Passwords match!"; ?>
Notez que pour strcmp ( ) , les chaînes doivent correspondre exactement pour être considérées comme égales. Par exemple, Supersecret est différent de supersecret. Si vous souhaitez comparer deux chaînes sans tenir compte de la casse, considérez strcasecmp () présenté ci-dessous.
Un autre point déroutant à propos de cette fonction est qu'elle renvoie 0 lorsque deux chaînes sont égales. Ceci est différent de l'utilisation de l'opérateur == pour compléter la comparaison de chaînes, comme suit :
if ( $str1 == $str2)
Les deux méthodes ont la même objectif, les deux comparent deux chaînes, mais rappelez-vous que les valeurs qu'elles renvoient sont différentes.
Exemple de code :
Le code est le suivant :
<?php echo strcmp("Hello world!","Hello world!"); //返回0 ?>
Ce qui suit est un meilleur exemple de code pour strcmp :
Code PHP strcmp pour contrôler l'accès en fonction de l'adresse IP
Un simple ajout :
La comparaison entre str1 et str2 ici est en fait la valeur ASCII de str1 et str2 Comparez
Par exemple :
strcmp("A","a"); La valeur de retour est -1
// La valeur ASCII de a est 97 La valeur ASCII de A est 65
Cet exemple est correct. On peut voir que lorsque strcmp() est utilisé pour comparer des chaînes, il est sensible à la casse
Examinons ensuite la compréhension approfondie de strcmp :
strcmp("abc","abc"); À ce moment, la valeur de retour de l'égalité de chaîne est 0
Changeons strcmp("aBc", "abc");
Puisque strcmp compare aBc et abc un par un, les deux La première chaîne de chaînes est comparée à la première, et la deuxième chaîne de
est comparée à la deuxième chaîne... Lorsque l'ASCII les valeurs de chaque comparaison sont égales, la comparaison de la paire suivante de
Caractère peut continuer. Par conséquent, si la deuxième paire B et b sont comparées et qu’elles ne sont pas égales, alors la comparaison s’arrête et une valeur de retour apparaît.
if ("abc">"aBC") Le principe de comparaison est le même
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!