substr_compare返回不正确的结果

时间:2011-04-18 19:06:36

标签: php string

在PHP手册中,给出的例子是

echo substr_compare("abcde", "bcg", 1, 2); // 0

我测试了代码并获得了相同的结果,但“bc”和“bcg”如何相等?这应该给-1。我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:4)

仔细阅读documentation

  

substr_compare()main_str与位置offsetstrlength个字符进行比较。

您可以将main_str"abcde")中的位置1("bc")与"bcg"的最多2个字符进行比较。但只有最多 2个字符。

另请参阅length参数:

  

比较的长度。默认值是str长度的最大值,而main_str的长度减去offset的长度。

我同意这可能会被误解,但只会比较最多 length个字符。

答案 1 :(得分:2)

从文档中,此功能“将{strong> main_str与位置offsetstrlength个字符进行比较。”

因此,从位置1开始,“abcde”中的2个字符将为“bc”。 “bcg”的前两个字符为“bc” - 因此会返回0