(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 设置为非忽略 (N),则这些字符之间的差异与字母之间的差异同等重要。 如果 Alternate 设置为移位 (S),则这些字符的意义仅次于其他字符。 移位 值通常与 Strength 设置为四级一起使用。 在这种情况下,空格、标点符号和符号会在比较字符串时被考虑,但只有在字符串的其他所有方面(基本字母、重音和大小写)都相同的情况下才会被考虑。 如果 Alternate 未设置为 Shifted,则 3 级和 4 级的 Strength 之间没有区别。 有关更多信息和示例,请参见 » UCA 中的 Variable_Weighting。 Alternate 值不是简单的 开启 和 关闭 的原因是,未来可能会添加额外的 Alternate 值。 UCA 选项 Blanked 通过将 Strength 设置为 3 且 Alternate 设置为 Shifted 来表示。 对于大多数语言环境,默认值为非忽略。 如果选择 Shifted,则如果有很多字符串除了标点符号外都相同,则可能会变慢;除非强度级别也提高,否则排序键长度不会受到影响。
可能的值为
示例 #2 ALTERNATE_HANDLING 规则
Collator::CASE_FIRST
Case_First 属性用于控制在字符串没有其他差异的情况下,大写字母是在小写字母之前还是之后。 可能的值为大写字母优先 (U) 和小写字母优先 (L),以及标准的默认和关闭。 从结果方面来看,关闭和 小写字母优先 选项几乎没有区别,因此用户通常不会使用 小写字母优先:只使用 关闭 或 大写字母优先。 (对 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 设置为主,并将 Case_Level 设置为开启。 在大多数语言环境中,此设置默认情况下为关闭。 如果此属性设置为开启,则字符串比较性能和排序键会有一定影响。
可能的值为
示例 #4 CASE_LEVEL 规则
Collator::NORMALIZATION_MODE
Normalization 设置确定比较时是否彻底规范化文本。 即使该设置关闭(这是许多语言环境的默认设置),在普通用法中表示的文本也会正确比较(有关详细信息,请参见 UTN #5)。 只有当重音标记的顺序不规范时才会出现问题。 如果该设置为开启,则可以保证所有可能的文本输入都能获得最佳结果。 如果此属性为开启,则字符串比较性能会有一定损失,具体取决于需要规范化的序列的频率。 对排序键长度没有重大影响。 如果已知输入文本采用 NFD 或 NFKD 规范化形式,则无需启用此 Normalization 选项。
可能的值为
Collator::STRENGTH
ICU 排序服务支持许多级别的比较(称为“级别”,但也称为“强度”。 这些类别使 ICU 能够根据本地约定对字符串进行精确排序。 但是,通过允许选择性地使用这些级别,可以在文本中搜索字符串,并使用各种匹配条件。 有关更详细的信息,请参见 collator_set_strength() 章。
可能的值为
Collator::HIRAGANA_QUATERNARY_MODE
与 JIS x 4061 的兼容性要求引入一个额外的级别来区分平假名和片假名字符。 如果需要与该标准兼容,则应将此属性设置为开启,并将强度设置为四级。 这会影响排序键长度和字符串比较性能。
可能的值为
Collator::NUMERIC_COLLATION
开启此属性后,将为数字子字符串的数字值生成排序键。 这是一种使“100”排序在“2”之后的方法。
可能的值为
Collator::DEFAULT_VALUE
Collator::PRIMARY
Collator::SECONDARY
Collator::TERTIARY
Collator::DEFAULT_STRENGTH
Collator::QUATERNARY
Collator::IDENTICAL
Collator::OFF
Collator::ON
Collator::SHIFTED
Collator::NON_IGNORABLE
Collator::LOWER_FIRST
Collator::UPPER_FIRST
Collator::SORT_REGULAR
Collator::SORT_STRING
Collator::SORT_NUMERIC