substr_compare返回不正确recults

问题描述:

在PHP手册substr_compare返回不正确recults

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

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

仔细阅读documentation

substr_compare()offset位置str比较main_str高达length字符。

您从位置1在main_str"abcde"),这是"bc"最多比较2个字符,"bcg"。但只有高达 2个字符。

参阅关于length参数:

比较的长度。缺省值是str的长度的最大值,而main_str的长度则小于offset的长度。

我同意它可能会被误解,但只高达length字符进行比较。

+1

你真棒,有没有人告诉过这个? – ufucuk 2011-04-18 19:12:34

+0

@ufucuk:不知何故,我不确定你是否认真或讽刺;) – 2011-04-18 19:21:13

+2

严重!我花了40分钟测试字符串,而不是仔细阅读文档。傻我!谢谢 – ufucuk 2011-04-18 19:34:30

从文档,该函数“从offset位置main_str比较了str高达length字符”。

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