在PHP手冊substr_compare返回不正確recults
echo substr_compare("abcde", "bcg", 1, 2); // 0
我測試的代碼,並獲得相同的結果,但如何「BC」和「BCG」能平等嗎?這應該給-1。我在這裏錯過了什麼嗎?
在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