Position actuelle: Accueil> Derniers articles> Quelle est la différence entre strCasecmp et strcmp? Analyse des scénarios d'utilisation de ces deux fonctions dans PHP

Quelle est la différence entre strCasecmp et strcmp? Analyse des scénarios d'utilisation de ces deux fonctions dans PHP

gitbox 2025-09-04

1. Fonction Strcmp

StrCMP (String Compare) est une fonction intégrée en PHP qui compare la taille de deux chaînes. Il compare le caractère de chaîne par caractère jusqu'à ce qu'un caractère différent soit trouvé. Si les deux chaînes sont les mêmes, StrCMP reviendra 0 ; Si la première chaîne est supérieure à la seconde, elle renverra un entier supérieur à zéro; Si la première chaîne est inférieure à la seconde, elle renverra un entier inférieur à zéro.

grammaire:

 <span><span><span class="hljs-title function_ invoke__">strcmp</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str2</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>

paramètre:

  • $ str1 : la première chaîne à comparer.

  • $ str2 : la deuxième chaîne à comparer.

Valeur de retour:

  • Si les deux chaînes sont égales, retournez 0 .

  • Si $ STR1 est inférieur à $ STR2 , un nombre négatif est retourné.

  • Si $ STR1 est supérieur à $ STR2 , un nombre positif est retourné.

exemple:

 <span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"apple"</span></span><span>;
</span><span><span class="hljs-variable">$str2</span></span><span> = </span><span><span class="hljs-string">"banana"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strcmp</span></span><span>(</span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-variable">$str2</span></span><span>);  </span><span><span class="hljs-comment">// Nombre négatif de sortie,parce que "apple" &lt; "banana"</span></span><span>
</span></span>

STRCMP est sensible à la casse, c'est-à-dire que si deux chaînes sont les mêmes dans le contenu mais ont des lettres différentes, il pense qu'ils sont différents.


2. Fonction StrcasecMP

Semblable à StrCMP , StrCasecMP (compare à chaîne, insensible à la casse) est également utilisé pour comparer la taille de deux chaînes. La différence est que StrcasecMP n'est pas sensible à la casse lors de l'exécution de comparaisons de chaînes. Cela le rend plus flexible lors de la comparaison, en particulier lors de l'ignorance du boîtier des lettres.

grammaire:

 <span><span><span class="hljs-title function_ invoke__">strcasecmp</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str2</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>

paramètre:

  • $ str1 : la première chaîne à comparer.

  • $ str2 : la deuxième chaîne à comparer.

Valeur de retour:

  • Si deux chaînes sont égales (le boîtier est ignoré), retournez 0 .

  • Si $ STR1 est inférieur à $ STR2 , un nombre négatif est retourné.

  • Si $ STR1 est supérieur à $ STR2 , un nombre positif est retourné.

exemple:

 <span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"apple"</span></span><span>;
</span><span><span class="hljs-variable">$str2</span></span><span> = </span><span><span class="hljs-string">"APPLE"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strcasecmp</span></span><span>(</span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-variable">$str2</span></span><span>);  </span><span><span class="hljs-comment">// Sortir0,parce que "apple" et "APPLE" Égal si-insensible à la casse</span></span><span>
</span></span>

3. Différences principales

La différence de base entre StrCMP et StrcasecMP est de savoir s'il est sensible aux lettres:

  • STRCMP est sensible à la casse et utilisera le cas de lettre dans le cadre de la comparaison.

  • StrcasecMP ignore le cas, et en comparant, on pense que le cas des mêmes lettres est différent, n'affecte pas le résultat.

4. Analyse du scénario d'utilisation

Utilisation de strcmp :

  • Lorsque vous devez comparer strictement en fonction des lettres supérieures et minuscules, vous pouvez utiliser STRCMP .

  • Par exemple, dans un système de fichiers, il peut être nécessaire de distinguer le cas des noms de fichiers, en particulier dans les systèmes d'exploitation sensibles à la cas (tels que Linux).

Utilisation de StrcasecMP :

  • Lorsque vous devez ignorer le cas des lettres de comparaison, vous pouvez utiliser StrcasecMP .

  • Par exemple, lors du traitement de l'entrée de l'utilisateur, le contenu entré par l'utilisateur peut être différent dans le cas, mais vous souhaitez ne pas être affecté par cas de lettre lors de la comparaison.

exemple:

 <span><span><span class="hljs-variable">$usernameInput</span></span><span> = </span><span><span class="hljs-string">"Admin"</span></span><span>;
</span><span><span class="hljs-variable">$usernameDatabase</span></span><span> = </span><span><span class="hljs-string">"admin"</span></span><span>;

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">strcasecmp</span></span><span>(</span><span><span class="hljs-variable">$usernameInput</span></span><span>, </span><span><span class="hljs-variable">$usernameDatabase</span></span><span>) === </span><span><span class="hljs-number">0</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Nom d&#39;utilisateur correspondant!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Nom de nom d&#39;utilisateur!"</span></span><span>;
}
</span></span>

Dans cet exemple, StrcasecMP est utilisé pour comparer les noms d'utilisateur entrés par les utilisateurs avec des noms d'utilisateur dans la base de données, que les lettres entrées soient en majuscules ou en minuscules, et seront considérées comme les mêmes.


5. Résumé

StrCMP et StrcasecMP sont tous deux des fonctions utilisées pour comparer deux chaînes, mais leur principale différence est de savoir s'ils sont sensibles à la casse. STRCMP comparera strictement le cas des lettres, tandis que StrcasecMP ignorera le cas des lettres. Sélectionnez la fonction appropriée en fonction des besoins spécifiques pour obtenir les résultats de comparaison corrects. Lors du traitement des données sensibles, la différence entre la partie supérieure et le bas de la cas est généralement nécessaire, tandis que lors du traitement des données insensibles telles que l'entrée de l'utilisateur, il peut être plus pratique d'ignorer la comparaison des boîtiers supérieurs et inférieurs.