Signatur
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
0steht fürU_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
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";
}
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";
}
// 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.