STRCMP (String Compare) ist eine integrierte Funktion in PHP, die die Größe von zwei Zeichenfolgen vergleicht. Es vergleicht das Zeichenfolgenzeichen nach Zeichen, bis ein anderer Zeichen gefunden wird. Wenn die beiden Saiten gleich sind, gibt STRCMP 0 zurück; Wenn die erste Zeichenfolge größer als die zweite ist, gibt er eine Ganzzahl größer als Null zurück. Wenn die erste Zeichenfolge geringer als die zweite ist, wird eine Ganzzahl weniger als Null zurückgegeben.
Grammatik:
<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>
Parameter:
$ str1 : Die erste String, die zu vergleichen ist.
$ str2 : Die zweite Zeichenfolge, die zu vergleichen ist.
Rückgabewert:
Wenn die beiden Saiten gleich sind, geben Sie 0 zurück.
Wenn $ str1 weniger als $ str2 ist, wird eine negative Zahl zurückgegeben.
Wenn $ str1 größer als $ str2 ist, wird eine positive Zahl zurückgegeben.
Beispiel:
<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">// Negative Ausgabe,Weil "apple" < "banana"</span></span><span>
</span></span>
STRCMP ist fallempfindlich, dh wenn zwei Zeichenfolgen inhaltlich gleich sind, aber unterschiedliche Buchstaben haben, wird es sich an die unterschiedliche Weise halten.
Ähnlich wie bei STRCMP wird auch StrCasecmp (String-Compare, Fall-unempfindlich) verwendet, um die Größe von zwei Zeichenfolgen zu vergleichen. Der Unterschied besteht darin, dass StrCaseCMP bei der Durchführung von String -Vergleiche nicht empfindlich ist. Dies macht es beim Vergleich flexibler, insbesondere wenn Sie einen Brieffall ignorieren.
Grammatik:
<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>
Parameter:
$ str1 : Die erste String, die zu vergleichen ist.
$ str2 : Die zweite Zeichenfolge, die zu vergleichen ist.
Rückgabewert:
Wenn zwei Zeichenfolgen gleich sind (Fall wird ignoriert), kehren Sie 0 zurück.
Wenn $ str1 weniger als $ str2 ist, wird eine negative Zahl zurückgegeben.
Wenn $ str1 größer als $ str2 ist, wird eine positive Zahl zurückgegeben.
Beispiel:
<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">// Ausgabe0,Weil "apple" Und "APPLE" Equal If Case-unempfindlich</span></span><span>
</span></span>
Der Kernunterschied zwischen STRCMP und STRCASECMP besteht darin, ob es für Briefe empfindlich ist:
STRCMP ist fallempfindlich und verwendet einen Brieffall im Rahmen des Vergleichs.
StrCasecmp ignoriert den Fall, und beim Vergleich wird angenommen, dass der Fall derselben Buchstaben unterschiedlich ist, hat das Ergebnis nicht.
Wenn Sie strikt nach den oberen und Kleinbuchstaben vergleichen müssen, können Sie STRCMP verwenden.
In einem Dateisystem kann beispielsweise der Fall von Dateinamen unterschieden werden, insbesondere in fallempfindlichen Betriebssystemen (z. B. Linux).
Wenn Sie den Fall von Buchstaben zum Vergleich ignorieren müssen, können Sie StrCaseCMP verwenden.
Bei der Verarbeitung von Benutzereingaben kann beispielsweise der vom Benutzer eingegebene Inhalt in den Fall unterschiedlich sein, aber Sie möchten beim Vergleich von Brieffall nicht beeinflusst werden.
Beispiel:
<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">"Benutzername Matching!"</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">"Benutzername Mismatch!"</span></span><span>;
}
</span></span>
In diesem Beispiel wird StrCaseCMP verwendet, um Benutzernamen zu vergleichen, die von Benutzern mit Benutzernamen in der Datenbank eingegeben wurden, unabhängig davon, ob die eingegebenen Buchstaben Großbuchstaben oder Kleinbuchstaben sind und als gleich angesehen werden.
STRCMP und STRCASECMP sind beide Funktionen, die zum Vergleich von zwei Zeichenfolgen verwendet werden. Ihr Hauptunterschied besteht jedoch darin, ob sie fallempfindlich sind. STRCMP vergleichen strikt den Brieffall, während StrCaseCMP den Brieffall ignoriert. Wählen Sie die entsprechende Funktion gemäß den spezifischen Bedürfnissen aus, um die korrekten Vergleichsergebnisse zu erhalten. Bei der Verarbeitung sensibler Daten ist in der Regel der Unterschied zwischen oberem und unteren Fall erforderlich, während bei der Verarbeitung unempfindlicher Daten wie der Benutzereingabe es möglicherweise bequemer ist, den Vergleich des oberen und unteren Falls zu ignorieren.