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() 从偏移位置 offset 开始比较 haystackneedle,比较长度为 length 个字符。

参数

haystack

待比较的第一个字符串。

needle

待比较的第二个字符串。

offset

比较开始的位置。如果为负数,则从字符串结尾处开始算起。

length

比较的长度。默认值为 needle 的长度与 haystack 的长度减去位置偏移量 offset 后二者中的较大者。

case_insensitive

如果 case_insensitivetrue,比较将不区分大小写。

返回值

如果 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
?>

参见

  • strncmp() - 二进制安全比较字符串开头的若干个字符

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top