(PHP 5, PHP 7, PHP 8)
substr_compare — Сравнивает две строки со смещения до заданного количества символов в бинарно безопасном режиме
$haystack,$needle,$offset,$length = null,$case_insensitive = false
Функция substr_compare() сравнивает строку
haystack с позиции смещения
offset с подстрокой
needle до заданного в параметре
length количества символов.
haystackОсновная сравниваемая строка.
needleСледующая сравниваемая строка.
offsetСтартовая позиция сравнения. Если отрицательна, то обозначает смещение с конца строки.
length
Длина сравнения. По умолчанию используется максимальная из длин
needle и haystack
минус offset.
case_insensitive
Если значение параметра case_insensitive равно true,
сравнение выполняется без учёта регистра.
Функция возвращает значение меньше 0, если строка string1
меньше строки string2; значение больше
0, если строка string1 больше строки
string2, и 0, если строки
равны.
Из значения возврата невозможно надёжно вывести конкретное значение,
кроме знака числа.
Функция substr_compare() выводит предупреждение и возвращает false,
если параметр offset больше (до PHP 7.2.18, 7.3.5) или равен длине
параметра haystack, или если передали аргумент length,
а его значение оказалось меньше 0.
| Версия | Описание |
|---|---|
| 8.2.0 |
Функция больше не гарантирует возврат разницы
strlen($string1) - strlen($string2), когда длины строк
не равны, но теперь вместо этого иногда возвращает -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); // Предупреждение
?>