substr_compare

(PHP 5, PHP 7, PHP 8)

substr_compareСравнивает две строки от смещения до заданной длины символов в бинарно-безопасном режиме

Описание

substr_compare(
    string $haystack,
    string $needle,
    int $offset,
    ?int $length = null,
    bool $case_insensitive = false
): int

Функция substr_compare() сравнивает строку haystack (начиная с позиции offset) со строкой needle. В сравнении участвуют максимум length символов.

Список параметров

haystack

Основная сравниваемая строка.

needle

Следующая сравниваемая строка.

offset

Стартовая позиция сравнения. Если отрицательна, то обозначает смещение с конца строки.

length

Длина сравнения. По умолчанию используется максимальная из длин needle и haystack минус offset.

case_insensitive

Если значение параметра case_insensitive равно true, сравнение выполняется без учёта регистра.

Возвращаемые значения

Функция возвращает -1, если значение string1 меньше значения string2, 1, если значение string1 больше значения string2, и 0, если строки равны. Если параметр offset больше (до PHP 7.2.18, 7.3.5) или равен длине параметра haystack или параметр length передали и его значение меньше 0, функция substr_compare() выводит предупреждение и возвращает false.

Список изменений

Версия Описание
8.2.0 Теперь функция возвращает -1 или 1; раньше она возвращала отрицательное или положительное число.
8.0.0 Параметр length теперь принимает значение null.
7.2.18, 7.3.5 Параметр offset теперь может быть равен параметру haystack.

Примеры

Пример #1 Пример использования функции substr_compare()

<?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); // Предупреждение

?>

Смотрите также

  • strncmp() - Сравнивает первые n символов строк в бинарно безопасном режиме