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