(PHP 5, PHP 7, PHP 8)
substr_compare — Бинарно-безопасное сравнение 2 строк со смещением, с учётом или без учёта регистра
$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
, сравнение выполняется без учёта регистра.
Возвращает -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); // предупреждение
?>