(PHP 5, PHP 7, PHP 8)
substr_compare — 二进制安全比较字符串(从偏移位置比较指定长度)
$haystack
,$needle
,$offset
,$length
= null
,$case_insensitive
= false
substr_compare() 从偏移位置
offset
开始比较
haystack
与
needle
,比较长度为
length
个字符。
haystack
待比较的第一个字符串。
needle
待比较的第二个字符串。
offset
比较开始的位置。如果为负数,则从字符串结尾处开始算起。
length
比较的长度。默认值为 needle
的长度与
haystack
的长度减去位置偏移量
offset
后二者中的较大者。
case_insensitive
如果 case_insensitive
为 true
,比较将不区分大小写。
如果 haystack
从偏移位置
offset
起的子字符串小于
needle
,则返回 -1
;如果大于
needle
,则返回 1
;如果二者相等,则返回 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); // warning
?>