(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Collator::setStrength -- collator_set_strength — Set collation strength
Description
Style orienté objet
public
Collator::setStrength(int
$strength
): bool
collator_set_strength(Collator
$object
, int
$strength
): bool
Niveau primaire :
Typiquement, ceci est utilisé pour faire la différence entre des
caractères de bases, comme "a" < "b"). C'est la différence la plus
importante. Par exemple, les dictionnaires sont divisées en sections
avec les caractères de base.
Ceci est aussi appelé le level 1
de dureté.
Niveau secondaire :
Les accents sur les caractères sont considérés comme des différences
secondaires. Par exemple, "as" < "às" < "at". D'autres différences
entre les caractères peuvent être considérées comme secondaires, en fonction
des langues. Une différence secondaire sont toujours ignorées quand
une différence primaire est présente.
Ceci est aussi appelé le level 2
de dureté.
Note:
Note : dans certaines langues, comme le danois, certains caractères
accentués sont considérés comme des caractères de bases. Dans la plupart
des langues, un caractère accentué est simplement une différence secondaire
avec les versions simple de la lettre.
Niveau tertiaire :
les majuscules et les minuscules sont distinguées au niveau tertiaire.
par exemple, "ao" < "Ao" < "aò". De plus, une variante d'une lettre
est différente de la forme de base, au niveau ternaire. Par exemple,
"A" et " ". Un autre exemple de différente tertiaire est le grand et le
petit Kana. Une différence tertiaire est ignorée quand une différence
primaire ou secondaire est présente.
Ceci est aussi appelé le level 3
de dureté.
Niveau quaternaire :
Lorsque le ponctuation est ignorée, au niveaux 1-3, un niveau supplémentaire
peut être utilisé pour distinguer des mots avec ou sans ponctuation. Par exemple,
"ab" < "a-b" < "aB". Cette différence est ignorée lorsqu'il y a une
différence de niveau primaire, secondaire ou tertiaire.
Ceci est aussi appelé le level 4
de dureté.
Le niveau quaternaire ne doit être utilisé que lorsqu'il faut ignorer la
ponctuation ou traiter du texte japonais (traitement Hiragana).
Niveau identique :
Lorsque tous les autres niveaux sont égaux, le niveau identique est utilisé
pour départager les caractères. Le code Unicode point sur une forme NFD
de chaque caractère, et sont comparés à ce niveau, au cas où il n'y aurait
pas de différence au niveaux 1-4. Par exemple, les cantillation hébraïque
ne sont distingués qu'à ce niveau. Ce niveau ne doit être utilisé
qu'avec beaucoup de parcimonie, car il fait substantiellement décroitre
les performances.
Ceci est aussi appelé le level 5
de dureté.
Par exemple, on peut choisir d'ignorer les accents, les accents et les
majuscules dans un texte. Presque tous les caractères sont distingués par les
trois premiers niveaux, et la plupart des locales s'arrêtent au niveau trois.
Cependant, si l'attribut Alternate prend la valeur de Shifted, alors le quatrième
niveau sert à départager les égalités entre les espaces, la ponctuation et
les symboles, qui seraient ignorés autrement. Si des différentes très subtiles
sont nécessaires entre les caractères, le niveau identique peut être utilisée
(par exemple, le niveau identique fait la différence entre un A mathématique
petit et gras avec un A mathématique italique et petit. Cependant, utiliser
ces niveaux implique une dégradation significative des performances lors de
la comparaison et le tri des chaînes proches ou égales.
Liste de paramètres
-
object
-
Objet Collator.
-
strength
-
Le niveau à choisir.
Les valeurs possibles sont :
Valeurs de retour
Cette fonction retourne true
en cas de succès ou false
si une erreur survient.
Exemples
Exemple #1 Exemple avec collator_set_strength()
<?php
$arr = array( 'aò', 'Ao', 'ao' );
$coll = collator_create( 'en_US' );
// Trie un tableau avec le niveau par défaut
collator_sort( $coll, $arr );
var_export( $arr );
// Tri un tableau avec le niveau primaire
collator_set_strength( $coll, Collator::PRIMARY );
collator_sort( $coll, $arr );
var_export( $arr );
?>
L'exemple ci-dessus va afficher :
array (
0 => 'ao',
1 => 'Ao',
2 => 'aò',
)
array (
0 => 'aò',
1 => 'Ao',
2 => 'ao',
)
Voir aussi
- Constantes Collator
- collator_get_strength() - Récupère la dureté de classement utilisé