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
字符进行比较。
答
从文档,该函数“从offset
位置main_str
比较了str
高达length
字符”。
因此,从“abcde
”开始的位置1的2个字符将是“bc
”。并且“bcg
”的前两个字符是“bc
” - 因此,返回0
。
你真棒,有没有人告诉过这个? – ufucuk 2011-04-18 19:12:34
@ufucuk:不知何故,我不确定你是否认真或讽刺;) – 2011-04-18 19:21:13
严重!我花了40分钟测试字符串,而不是仔细阅读文档。傻我!谢谢 – ufucuk 2011-04-18 19:34:30