比較運算符< <= > >=
也可以應用於字符串。那麼爲什麼我們需要特殊的字符串比較函數:strcmp
?PHP:爲什麼我們需要字符串比較功能?
9
A
回答
13
因爲有幾個變化:
根據不同的功能,這些問題的答案各不相同:
- 是否區分大小寫? (
strcmp
vsstrcasecmp
,strnatcmp
vsstrnatcasecmp
) - 取決於語言環境嗎? (
strcoll
呢) - 我可以指定一個排序規則嗎? (
strcoll
由setlocale
受影響)
Additionaly,比較運算符也給true
或false
。 strcmp
給出一個整數,所以它可以同時編碼是否存在標識(返回0),或者如果不是,哪個更大(取決於值是正還是負)。
3
雖然有PHP中沒有重載的strcmp,的strcmp結果在3倍不同的值 -1小於,0爲equals和1比所比較的字符串越大。隨着< = <= > >=
你會(有時)一個接一個地做多次檢查。
我想你可能會提供一個自己的比較器或語言環境到該函數......但不,它只是簡單的舊C庫函數,儘管是二進制安全的。所以也許可以輕鬆地將C代碼移植到PHP中......因爲這顯然是一直在發生的。 – Joey 2010-07-15 11:38:38