(PHP 5, PHP 7, PHP 8)
substr_compare — Binärsicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge
$haystack
,$needle
,$offset
,$length
= null
,$case_insensitive
= false
substr_compare() vergleicht haystack
ab der in offset
definierten Position mit
needle
. Die Länge des verglichenen String-Bestandteils
wird vom Parameter length
bestimmt.
haystack
Die zu vergleichende Hauptzeichenkette.
needle
Die zweite zu vergleichende Zeichenkette.
offset
Die Anfangsposition für den Vergleich. Wenn der Wert negativ ist, wird rückwärts vom Ende der Zeichenkette an gezählt.
length
Die Länge der zu vergleichenden Zeichensequenz. Standardwert ist der
größere Wert des Vergleiches der Länge von
needle
mit der Länge von
haystack
minus offset
.
case_insensitive
Wenn case_insensitive
den Wert true
hat,
wird der Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung
durchgeführt.
Gibt einen Wert kleiner als 0 zurück, wenn string1
in
der Reihenfolge der Sortierung vor string2
kommt;
einen Wert größer als 0, wenn string1
nach
string2
kommt, und 0
, wenn sie
gleich sind.
Aus dem Wert kann außer seinem Vorzeichen keine bestimmte Bedeutung
abgeleitet werden.
Wenn offset
gleich (vor PHP 7.2.18, 7.3.5) oder
größer als die Länge von haystack
ist oder
length
gesetzt und kleiner als 0 ist, gibt
substr_compare() eine Warnung aus und hat den
Rückgabewert false
.
Version | Beschreibung |
---|---|
8.2.0 |
Diese Funktion gibt nicht mehr garantiert
strlen($string1) - strlen($string2) zurück, wenn die Längen der
Zeichenketten nicht gleich sind, sondern kann nun
stattdessen -1 oder 1 zurückgeben.
|
8.0.0 |
length ist nun nullable (akzeptiert den
null -Wert).
|
7.2.18, 7.3.5 |
offset kann nun gleich der Länge von
haystack sein.
|
Beispiel #1 Ein substr_compare()-Beispiel
<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "de", -2, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 1
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // warning
?>