Start · Sprachen · PHP · Referenz · collator_get_error_code

collator_get_error_code

Funktion

Liefert den numerischen ICU-Fehlercode der zuletzt ausgeführten <code>Collator</code>-Operation.

seit PHP 5.3.0 Kategorie: string

Signatur

collator_get_error_code(Collator $object): int

Beschreibung

collator_get_error_code() gibt den internen ICU-Fehlercode zurück, der nach der zuletzt ausgeführten Operation auf dem übergebenen Collator-Objekt gesetzt wurde. Der Rückgabewert entspricht einer Konstante aus der ICU-Bibliothek (U_ZERO_ERROR = 0 bedeutet kein Fehler).

Die Funktion ist die prozedurale Variante von Collator::getErrorCode() und arbeitet identisch. Sie ist nützlich, wenn man den prozeduralen Stil der intl-Erweiterung bevorzugt oder ältere Codebasen pflegt, die noch keine objektorientierte API verwenden.

Typische Einsatzszenarien sind die Fehlerdiagnose nach Sortieroperationen (collator_sort(), collator_compare()) sowie nach dem Setzen von Collator-Attributen. In Kombination mit collator_get_error_message() lässt sich eine aussagekräftige Fehlermeldung erzeugen.

  • Rückgabewert 0 steht für U_ZERO_ERROR — also keinen Fehler.
  • Negative Werte kennzeichnen Warnungen, positive Werte echte Fehler in der ICU-Bibliothek.

Parameter

Name Typ Default Beschreibung
$object Pflicht Collator Das Collator-Objekt, dessen letzter Fehlercode abgefragt werden soll. Wird typischerweise mit collator_create() oder new Collator() erzeugt.

Rückgabewert

Typ
int
Beschreibung
Gibt den ICU-Fehlercode der letzten Operation als Ganzzahl zurück. 0 (U_ZERO_ERROR) signalisiert, dass kein Fehler aufgetreten ist. Positive Werte stehen für Fehler, negative für Warnungen.

Beispiele

Fehlercode nach ungültigem Attribut prüfen

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

// Ungültiges Attribut setzen, um einen Fehler auszulösen
collator_set_attribute($collator, Collator::NUMERIC_COLLATION, 999);

$errorCode = collator_get_error_code($collator);
$errorMessage = collator_get_error_message($collator);

if ($errorCode !== 0) {
    echo "Fehlercode: $errorCode\n";
    echo "Fehlermeldung: $errorMessage\n";
} else {
    echo "Kein Fehler.\n";
}
Fehlercode: 1 Fehlermeldung: U_ILLEGAL_ARGUMENT_ERROR

Fehlerprüfung nach Sortieroperation

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

$woerter = ['Äpfel', 'Zitrone', 'Banane', 'Birne'];
collator_sort($collator, $woerter);

$code = collator_get_error_code($collator);

if ($code === 0) {
    echo "Sortierung erfolgreich:\n";
    echo implode(', ', $woerter) . "\n";
} else {
    echo "Fehler beim Sortieren (Code: $code): "
        . collator_get_error_message($collator) . "\n";
}
Sortierung erfolgreich: Äpfel, Banane, Birne, Zitrone

// Wichtig · Fallstricke

Die intl-Erweiterung muss aktiviert sein (PHP-Build mit --enable-intl bzw. Extension intl in der php.ini geladen). Fehlt die Erweiterung, steht collator_get_error_code() nicht zur Verfügung.

Wird collator_create() mit einem ungültigen Locale aufgerufen, kann der zurückgegebene Collator bereits in einem Fehlerzustand sein. In diesem Fall sollte direkt nach der Erstellung der Fehlercode geprüft werden.