Start · Sprachen · PHP · Referenz · collator_get_strength

collator_get_strength

Funktion

Gibt die aktuelle Collation-Stärke (Vergleichsgenauigkeit) eines <code>Collator</code>-Objekts zurück.

seit PHP 5.3.0 Kategorie: string

Signatur

collator_get_strength(Collator $object): int

Beschreibung

collator_get_strength() liest die aktuell eingestellte Vergleichsstärke eines Collator-Objekts aus. Die Stärke bestimmt, wie genau Zeichen beim Sortieren und Vergleichen unterschieden werden – zum Beispiel ob Groß-/Kleinschreibung, Akzente oder Satzzeichen berücksichtigt werden.

Die Rückgabe ist eine der Konstanten Collator::PRIMARY, Collator::SECONDARY, Collator::TERTIARY, Collator::QUATERNARY oder Collator::IDENTICAL. Sie entsprechen aufsteigender Vergleichsgenauigkeit.

Diese Funktion ist die prozedurale Entsprechung der Objektmethode Collator::getStrength(). Sie ist besonders nützlich, um die aktuelle Konfiguration eines Collators zu inspizieren, bevor Anpassungen vorgenommen werden.

Parameter

Name Typ Default Beschreibung
$object Pflicht Collator Ein Collator-Objekt, das zuvor mit collator_create() oder new Collator() erzeugt wurde.

Rückgabewert

Typ
int
Beschreibung
Gibt die aktuelle Stärke als Integer zurück, typischerweise eine der Konstanten Collator::PRIMARY (0), Collator::SECONDARY (1), Collator::TERTIARY (2), Collator::QUATERNARY (3) oder Collator::IDENTICAL (15). Im Fehlerfall wird false zurückgegeben.

Beispiele

Aktuelle Stärke eines Collators auslesen

<?php
$collator = collator_create('de_DE');
$strength = collator_get_strength($collator);

switch ($strength) {
    case Collator::PRIMARY:
        echo 'Stärke: PRIMARY (nur Basiszeichen)';
        break;
    case Collator::SECONDARY:
        echo 'Stärke: SECONDARY (Basiszeichen + Akzente)';
        break;
    case Collator::TERTIARY:
        echo 'Stärke: TERTIARY (+ Groß-/Kleinschreibung)';
        break;
    case Collator::QUATERNARY:
        echo 'Stärke: QUATERNARY (+ Satzzeichen)';
        break;
    case Collator::IDENTICAL:
        echo 'Stärke: IDENTICAL (vollständige Übereinstimmung)';
        break;
    default:
        echo 'Unbekannte Stärke: ' . $strength;
}
Stärke: TERTIARY (+ Groß-/Kleinschreibung)

Stärke prüfen und anpassen

<?php
$collator = collator_create('fr_FR');

echo 'Aktuelle Stärke: ' . collator_get_strength($collator) . PHP_EOL;

// Stärke auf PRIMARY setzen (nur Basiszeichen vergleichen)
collator_set_strength($collator, Collator::PRIMARY);
echo 'Neue Stärke: ' . collator_get_strength($collator) . PHP_EOL;

// Vergleich mit PRIMARY-Stärke: 'e' == 'é' == 'E'
$result = collator_compare($collator, 'e', 'é');
echo 'Vergleich e und é: ' . ($result === 0 ? 'gleich' : 'unterschiedlich') . PHP_EOL;
Aktuelle Stärke: 2 Neue Stärke: 0 Vergleich e und é: gleich

// Wichtig · Fallstricke

Die Standardstärke eines neu erstellten Collator-Objekts ist sprachabhängig, beträgt aber in den meisten Locales Collator::TERTIARY (Wert 2). Die Stärke beeinflusst direkt das Verhalten von collator_compare() und collator_sort().

Die Konstante Collator::IDENTICAL hat den numerischen Wert 15 (nicht 4), was bei direkten Integer-Vergleichen zu Überraschungen führen kann. Nutzen Sie daher stets die Konstanten statt roher Zahlenwerte.