substr_compare
(PHP 5, PHP 7, PHP 8)
substr_compare — Binärdaten-sicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge
Beschreibung
string
$haystack
,string
$needle
,int
$offset
,?int
$length
= null
,bool
$case_insensitive
= false
): int
substr_compare() vergleicht haystack
ab der in offset
definierten Position mit
needle
. Die Länge des verglichenen String-Bestandteils
wird vom length
-Parameter bestimmt.
Parameter-Liste
-
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 des
needle
mit der Länge vonhaystack
minusoffset
. -
case_insensitive
-
Wenn
case_insensitive
den Werttrue
hat, wird der Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung durchgeführt.
Rückgabewerte
Gibt eine Zahl < 0 zurück, wenn haystack
ab der
in offset
festgelegten Position kleiner ist als
needle
, eine Zahl > 0, wenn der ermittelte String
größer ist als needle
, und 0, wenn sie gleich sind.
Wenn der Parameter 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 (oder, vor
PHP 5.5.11, kleiner als 1), gibt substr_compare() eine
Warnung aus und hat den Rückgabewert false
.
Changelog
Version | Beschreibung |
---|---|
8.0.0 |
length ist jetzt ein Nullable-Typ.
|
7.2.18, 7.3.5 |
offset kann nun gleich der Länge des
haystack sein.
|
Beispiele
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
?>