(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
提供字串比較功能,支援適當的在地區排序規則。
Collator::FRENCH_COLLATION
整數從字串尾端排序帶有不同重音符號的字串。此屬性會自動為法語地區設定和其他一些地區設定為「開啟」。使用者通常不需要明確設定此屬性。當它設定為「開啟」時,字串比較效能會有所損耗,但排序鍵長度不受影響。可能的值為
範例 #1 FRENCH_COLLATION 規則
Collator::ALTERNATE_HANDLING
Alternate 屬性用於控制 UCA 中所謂的可變字元的處理:空格、標點符號和符號。如果 Alternate 設定為「NonIgnorable」(N,不可忽略),則這些字元之間的差異與字母之間的差異具有相同的重要性。如果 Alternate 設定為「Shifted」(S,偏移),則這些字元的重要性較低。「偏移」值通常與「強度」設定為四級一起使用。在這種情況下,比較字串時會考慮空格、標點符號和符號,但前提是字串的所有其他方面(基本字母、重音符號和大小寫)都相同。如果 Alternate 未設定為「偏移」,則強度為 3 和強度為 4 之間沒有區別。有關更多資訊和範例,請參閱 » UCA 中的 Variable_Weighting。Alternate 值不是簡單的「開啟」和「關閉」的原因是,未來可能會新增其他 Alternate 值。UCA 選項 Blanked(空白)以強度設定為 3 且 Alternate 設定為「偏移」來表示。大多數地區設定的預設值為 NonIgnorable(不可忽略)。如果選擇「偏移」,則如果許多字串除了標點符號之外都相同,則速度可能會變慢;排序鍵長度不會受到影響,除非強度級別也增加。
可能的值為
範例 #2 ALTERNATE_HANDLING 規則
Collator::CASE_FIRST
整數Case_First 屬性用於控制在字串沒有其他差異的情況下,大寫字母是在小寫字母之前還是之後。可能的值為 Uppercase_First (U) 和 Lowercase_First (L),以及標準的 Default 和 Off。Off 和 Lowercase_First 選項在結果方面幾乎沒有區別,因此通常用戶不會使用 Lowercase_First:只會使用 Off 或 Uppercase_First。(對 X 和 L 之間的詳細差異感興趣的人應該參考 Collation Customization
)。指定 L 或 U 不會影響字串比較效能,但會影響排序鍵的長度。
可能的值為
Collator::OFF
(關閉)(預設)Collator::LOWER_FIRST
Collator::UPPER_FIRST
Collator::DEFAULT
範例 #3 CASE_FIRST 規則
Collator::CASE_LEVEL
整數忽略重音但不忽略大小寫時,會使用 Case_Level 屬性。在此情況下,將 Strength 設定為 Primary,並將 Case_Level 設定為 On。在大多數地區設定中,預設情況下此設定為 Off。如果將此屬性設定為 On,則會對字串比較效能和排序鍵產生些微影響。
可能的值為
範例 #4 CASE_LEVEL 規則
Collator::NORMALIZATION_MODE
整數Normalization 設定決定在比較時是否要完整正規化文字。即使設定為 off(許多地區設定的預設值),以常用方式表示的文字也能正確比較(詳情請參閱 UTN #5)。只有當重音符號的順序不符合標準規範時,才會出現問題。如果設定為 On,則可保證所有可能的文字輸入都能獲得最佳結果。如果此屬性為 On,則字串比較效能會根據需要正規化的序列的頻率而產生中等程度的成本。排序鍵長度沒有顯著影響。如果已知輸入文字為 NFD 或 NFKD 正規化格式,則無需啟用此正規化選項。
可能的值為
Collator::STRENGTH
整數ICU 排序服務支援多個比較層級(稱為「層級」,也稱為「強度」)。這些類別使 ICU 能夠根據當地慣例精確排序字串。然而,透過允許選擇性地使用這些層級,可以在文字中搜尋字串,並使用各種不同的比對條件。如需更詳細的資訊,請參閱 collator_set_strength() 章節。
可能的值為
Collator::HIRAGANA_QUATERNARY_MODE
整數與 JIS x 4061 的相容性需要引入額外的層級來區分平假名和片假名字元。如果需要與該標準相容,則應將此屬性設定為 On,並將強度設定為 Quaternary。這會影響排序鍵長度和字串比較效能。
可能的值為
Collator::NUMERIC_COLLATION
整數 (int)啟用此屬性後,會為數字子字串的數值生成排序鍵。這是一種讓 '100' 排在 '2' 之後的方法。
可能的值為
Collator::DEFAULT_VALUE
整數 (int)Collator::PRIMARY
整數 (int)Collator::SECONDARY
整數 (int)Collator::TERTIARY
整數 (int)Collator::DEFAULT_STRENGTH
整數 (int)Collator::QUATERNARY
整數 (int)Collator::IDENTICAL
整數 (int)Collator::OFF
整數 (int)Collator::ON
整數 (int)Collator::SHIFTED
整數 (int)Collator::NON_IGNORABLE
整數 (int)Collator::LOWER_FIRST
整數 (int)Collator::UPPER_FIRST
整數 (int)Collator::SORT_REGULAR
整數 (int)
Collator::SORT_STRING
整數 (int)
Collator::SORT_NUMERIC
整數 (int)
版本 | 說明 |
---|---|
8.4.0 | 類別常數現在已加上類型。 |