2011-04-18 133 views
0

在PHP手冊substr_compare返回不正確recults

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

我測試的代碼,並獲得相同的結果,但如何「BC」和「BCG」能平等嗎?這應該給-1。我在這裏錯過了什麼嗎?

回答

4

仔細閱讀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

2

從文檔,該函數「從offset位置main_str比較了str高達length字符」。

因此,從「abcde」開始的位置1的2個字符將是「bc」。並且「bcg」的前兩個字符是「bc」 - 因此,返回0