(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Fornece capacidade de comparação de strings com suporte ao ordenamento apropriado de acordo com a localidade.
Collator::FRENCH_COLLATION
     int
    Ordena strings com diferentes acentuações a partir do final da string. Este atributo é automaticamente definido para ON (ligado) para as localidades francesas e algumas outras. Usuários normalmente não precisam definir explicitamente este atributo. Há um custo de desempenho de comparação de strings quando definida para ON, mas o comprimento da chave de ordenação não é afetado. Os valores possíveis são:
Exemplo #1 Regras da FRENCH_COLLATION
Collator::ALTERNATE_HANDLING
    O atributo alternativo é usado para controlar o gerenciamento dos chamados caracteres variáveis na UCA: espaços em branco, pontuações e símbolos. Se ALTERNATE_HANDLING (A) for definido para NON_IGNORABLE (N), as diferenças entre estes caracteres são da mesma importância que as diferenças entre letras. Se ALTERNATE_HANDLING for definida para SHIFTED (S), estes caracteres são somente de importância menor. O valor SHIFTED é frequentemente usado em combinação com STRENGTH definida para set to QUATERNARY. Neste caso, espaços em branco, pontuações e símbolos são considerados ao comparar strings, mas somente se todos os outros aspectos das strings (letras base, acentos e forma) forem idênticos. Se ALTERNATE_HANDLING não for definida para SHIFTED, não haverá diferença entre uma STRENGTH de 3 e uma STRENGTH de 4. Para mais informações e exemplos, consulte "Variable_Weighting" na » UCA. A razão pela qual os valores para ALTERNATE_HANDLING não são simplesmente ON (ligado) e OFF (desligado) é que valores adicionais podem ser necessários no futuro. A opção BLANKED da UCA é expressa com STRENGTH de 3, e ALTERNATE_HANDLING definida para SHIFTED. O padrão para a maioria das localidades é NON_IGNORABLE. Se SHIFTED for selecionado, pode ser mais lento se houver muitas strings que são as mesmas exceto pela pontuação; o comprimento da chave de ordenação não será afetado a menos que o nível de STRENGHT seja também aumentado.
Os valores possíveis são:
Exemplo #2 Regras de ALTERNATE_HANDLING
Collator::CASE_FIRST
     int
    
      O atributo CASE_FIRST é usado para controlar se letras maiúsculas
      vêm antes de letras minúsculas ou vice-versa, na ausência de outras
      diferenças nas strings. Os valores possíveis são
      UPPER_FIRST (maiúsculas primeiro - U)
      e LOWER_FIRST (minúsculas primeiro - L),
      mais o DEFAULT (padrão)
      e OFF (desligado - X).
      Quase não há diferença entre as opções OFF e LOWER_FIRST
      em termos de resultados, portanto tipicamente os usuários não usarão
      LOWER_FIRST: apenas OFF ou UPPER_FIRST. (Os interessados nas
      diferenças detalhadas entre X e L devem consultar a Collation
      Customization - Customização de Agrupamento). Especificar L ou U não afetará o desempenho de
      comparação de strings, mas afetará o comprimento da chave de ordenação.
     
Os valores possíveis são:
Collator::OFF(padrão)Collator::LOWER_FIRSTCollator::UPPER_FIRSTCollator:DEFAULT
Exemplo #3 Regras de CASE_FIRST
Collator::CASE_LEVEL
     int
    O atributo CASE_LEVEL é usado quando os acentos são ignorados mas as maiúsculas/minúsculas não são. Nesta situação, deve-se definir STRENGTH para PRIMARY, e CASE_LEVEL para ON. Na maioria das localidades, esta configuração é OFF por padrão. Existe um pequeno impacto no desempenho de comparação de strings e na chave de ordenação se este atributo for definido para ON.
Os valores possíveis são:
Exemplo #4 Regras de CASE_LEVEL
Collator::NORMALIZATION_MODE
     int
    A configuração NORMALIZATION_MODE determina se o texto está completamente normalizado ou não na comparação. Mesmo se a configuração esteja em OFF (que é o padrão para muitas localidades), texto como representado em uso comum irá comparar corretamente (para detalhes, consulte UTN #5). Somente se as marcas de acentos estiverem em ordem não canônica haverá problema. Se a configuração estiver em ON, os melhores resultados são garantidos para todas as entradas de texto possíveis. Existe um custo médio de desempenho na comparação de strings se este atributo estiver em ON, dependendo da frequência de sequências que requerem normalização. Não há efeito significativo no comprimento da chave de ordenação. Se for sabido que o texto de entrada está nas formas de normalização NFD ou NFKD, não há necessidade de habilitar esta opção de normalização.
Os valores possíveis são:
Collator::STRENGTH
     int
    O Serviço de Agrupamento ICU suporta vários níveis de comparação, chamados também de "Strengths" (forças). Ter estas categorias possibilita à ICU ordenar as strings de forma precisa conforme as convenções locais. Entretanto, ao permitir que os níveis sejam seletivamente empregados, a pesquisa por uma string no texto pode ser realizada com várias condições de correspondência. Para informações mais detalhadas, consulte o capítulo collator_set_strength().
Os valores possíveis são:
Collator::HIRAGANA_QUATERNARY_MODE
     int
    Compatibilidade com JIS x 4061 requer a introdução de um nível adicional para distinguir caracteres Hiragana e Katakana. Se for requerida compatibilidade com o esse padrão, este atributo deve ser definido para ON, e a STRENGTH deve ser definida para QUATERNARY. Isto afetará o comprimento da chave de ordenação e desempenho de comparação de strings.
Os valores possíveis são:
Collator::NUMERIC_COLLATION
     int
    Quando definido para ON, este atributo gera uma chave de agrupamento para o valor numérico de substrings de dígitos. Esta é uma maneira de obter '100' ordenado DEPOIS de '2'.
Os valores possíveis são:
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
    | Versão | Descrição | 
|---|---|
| 8.4.0 | As constantes de classe agora são tipadas. | 
