Die grundlegende Syntax der STRNCMP -Funktion lautet wie folgt:
<span><span><span class="hljs-title function_ invoke__">strncmp</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><span class="hljs-variable">$length</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>
$ str1 : Die erste Zeichenfolge.
$ str2 : die zweite Zeichenfolge.
$ Länge : Die Anzahl der zu vergleichen.
Die STRNCMP -Funktion beginnt vom Beginn von zwei Saiten, und höchstens Länge werden Zeichen verglichen. Es gibt die folgenden möglichen Werte zurück:
0 : bedeutet, dass die Zeichen der ersten Länge gleich sind.
Mehr als 0 : bedeutet, dass der erste Längencharakter von $ str1 größer ist als der erste Längencharakter von $ str2 .
Weniger als 0 : bedeutet, dass die ersten Länge von $ str1 weniger als die Zeichen der ersten Länge von $ str2 sind.
Die STRNCMP -Funktion ist Fallempfindlichkeit . Dies bedeutet, dass, wenn Sie "Hallo" und "Hallo" mit STRNCMP vergleichen, die Funktion immer noch der Meinung ist, dass sie nicht gleich sind, selbst wenn die beiden Zeichenfolgen genau die gleichen sind, außer für die Initialen. Siehe das folgende Beispiel:
<span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"hello"</span></span><span>;
</span><span><span class="hljs-variable">$str2</span></span><span> = </span><span><span class="hljs-string">"Hello"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">strncmp</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-number">5</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">"Zwei Saiten sind gleich"</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">"Zwei Saiten sind unterschiedlich"</span></span><span>;
}
</span></span>
Die Ausgabe wird sein:
<span><span>Zwei Saiten sind unterschiedlich
</span></span>
Obwohl "Hallo" und "Hallo" nur Fallunterschiede im Inhalt haben, wird sie sie für ungleich betrachten, da es standardmäßig Fall sensibel ist.
Wenn wir möchten, dass STRNCMP beim Vergleich von Fall-unempfindlich ist, können wir die STRNCasecmp -Funktion verwenden. STRNCASECMP ist eine von Fall unempfindliche Version, und ihre Verwendung ähnelt der STRNCMP :
<span><span><span class="hljs-title function_ invoke__">strncasecmp</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><span class="hljs-variable">$length</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>
Die STRNCasecmp -Funktion ignoriert Fallunterschiede beim Vergleich der ersten Länge von zwei Zeichenfolgen. Beispiele sind wie folgt:
<span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"hello"</span></span><span>;
</span><span><span class="hljs-variable">$str2</span></span><span> = </span><span><span class="hljs-string">"Hello"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">strncasecmp</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-number">5</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">"Zwei Saiten sind gleich"</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">"Zwei Saiten sind unterschiedlich"</span></span><span>;
}
</span></span>
Die Ausgabe wird sein:
<span><span>Zwei Saiten sind gleich
</span></span>
Wie oben gezeigt, ignoriert die STRNCasecmp -Funktion Fallunterschiede in "Hallo" und "Hallo" und berücksichtigt sie gleich.
Die STRNCMP -Funktion ist beim Vergleich von Zeichenfolgen fallempfindlich .
Wenn Sie Fall-unempfindliche Vergleiche durchführen müssen, können Sie die STRNCaseCMP -Funktion verwenden.
In der tatsächlichen Entwicklung müssen wir uns für die Verwendung von STRNCMP oder STRNCASECMP entscheiden, um sicherzustellen, dass das Ergebnis des String -Vergleichs mit den Erwartungen entspricht. Es ist besonders wichtig, die Unterschiede zwischen diesen Funktionen bei der Verarbeitung von Benutzereingaben, Formularen oder Datenbankabfrageergebnissen zu verstehen.