English | 简体中文 | 繁體中文
查询

substr_compare()函数—用法及示例

「 比较两个字符串的一部分内容,并返回它们之间的差异 」


函数名称:substr_compare()

适用版本:PHP 5, PHP 7

函数描述:substr_compare()函数用于比较两个字符串的一部分内容,并返回它们之间的差异。它是区分大小写的比较函数。

语法:int substr_compare(string $main_str, string $str, int $offset, int $length [, bool $case_insensitivity = false])

参数:

  • $main_str:需要进行比较的主字符串。
  • $str:需要进行比较的字符串。
  • $offset:比较开始的位置,可以是正数或负数。如果是正数,表示从主字符串的第 $offset 个字符开始比较;如果是负数,表示从主字符串的倒数第 $offset 个字符开始比较。
  • $length:比较的长度,如果为0,则比较到主字符串或字符串的最后一个字符结束。
  • $case_insensitivity(可选):是否进行大小写不敏感的比较,默认为false,即进行大小写敏感的比较。

返回值:如果主字符串在指定位置开始的子字符串与比较字符串相等,则返回0;如果主字符串小于比较字符串,则返回一个负数;如果主字符串大于比较字符串,则返回一个正数。

示例:

$main_str = "Hello World";
$str = "Hello";
$offset = 0;
$length = 5;

$result = substr_compare($main_str, $str, $offset, $length);
if ($result === 0) {
    echo "主字符串与比较字符串相等";
} elseif ($result < 0) {
    echo "主字符串小于比较字符串";
} else {
    echo "主字符串大于比较字符串";
}
// 输出:主字符串与比较字符串相等
$main_str = "Hello World";
$str = "world";
$offset = -5;
$length = 5;

$result = substr_compare($main_str, $str, $offset, $length, true);
if ($result === 0) {
    echo "主字符串与比较字符串相等";
} elseif ($result < 0) {
    echo "主字符串小于比较字符串";
} else {
    echo "主字符串大于比较字符串";
}
// 输出:主字符串大于比较字符串

注意事项:

  • 比较时,如果主字符串的长度小于 $offset + $length,则会自动调整为可用的长度进行比较。
  • 如果指定的 $offset 或 $length 为负数,且其绝对值大于主字符串的长度,则会返回false。
  • 如果设置 $case_insensitivity 为true,则进行大小写不敏感的比较。
  • 在PHP 7中,如果主字符串和比较字符串都不是字符串类型,会抛出一个E_WARNING错误,返回false。在PHP 5中,会将非字符串类型的参数转换为字符串进行比较。
补充纠错
上一个函数: substr_count()函数
下一个函数: str_word_count()函数
热门PHP函数
分享链接