substr_compare

(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

Beschreibung

substr_compare(
    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 Parameter length 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 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.

Rückgabewerte

Gibt -1 zurück, wenn haystack ab der in offset festgelegten Position in der Reihenfolge der Sortierung vor needle kommt, 1, wenn es nach needle kommt, 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, gibt substr_compare() eine Warnung aus und hat den Rückgabewert false.

Changelog

VersionBeschreibung
8.2.0 Diese Funktion gibt nun -1 oder 1 zurück, wo sie vorher eine negative oder positive Zahl zurückgab.
8.0.0length ist nun nullable (akzeptiert den null-Wert).
7.2.18, 7.3.5offset kann nun gleich der Länge von 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
?>

Siehe auch

  • strncmp() - String-Vergleich der ersten n Zeichen (binärsicher)
To Top