Signatur
Beschreibung
transliterator_get_error_code() liefert den internen ICU-Fehlercode, der beim letzten Operationsaufruf des übergebenen Transliterator-Objekts aufgetreten ist. Diese Funktion ist nützlich, um nach einer fehlgeschlagenen Transliteration den genauen Fehlertyp zu ermitteln.
Die Funktion ist das prozedurale Äquivalent der Objektmethode Transliterator::getErrorCode(). Der zurückgegebene Code ist ein ICU-interner Fehlercode, der zusammen mit transliterator_get_error_message() verwendet werden kann, um eine lesbare Fehlerbeschreibung zu erhalten.
Typische Anwendungsfälle sind das Debuggen von Transliterationsregeln oder das gezielte Abfangen von Fehlern nach Aktionen wie dem Erstellen eines Transliterators mit ungültigen Regeln oder dem Transliterieren fehlerhafter Eingabedaten.
Gibt false zurück, wenn kein gültiges Transliterator-Objekt übergeben wurde oder ein interner Fehler aufgetreten ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $transliterator Pflicht | Transliterator | Ein Transliterator-Objekt, dessen letzter Fehlercode abgefragt werden soll. |
Rückgabewert
int zurück. Wenn kein Fehler aufgetreten ist, wird U_ZERO_ERROR (0) zurückgegeben. Bei einem Fehler in der Funktion selbst wird false zurückgegeben.Beispiele
Fehlercode nach erfolgreicher Transliteration abfragen
<?php
$transliterator = Transliterator::create('Any-Latin; Latin-ASCII');
if ($transliterator === null) {
echo 'Transliterator konnte nicht erstellt werden.';
exit;
}
$result = transliterator_transliterate($transliterator, 'Héllo Wörld');
$errorCode = transliterator_get_error_code($transliterator);
echo 'Ergebnis: ' . $result . PHP_EOL;
echo 'Fehlercode: ' . $errorCode . PHP_EOL;
Fehlercode und Fehlermeldung gemeinsam ausgeben
<?php
$transliterator = Transliterator::create('Any-Latin; Latin-ASCII');
if ($transliterator === null) {
echo 'Transliterator konnte nicht erstellt werden.';
exit;
}
// Simulierte Verarbeitung
transliterator_transliterate($transliterator, '日本語テスト');
$errorCode = transliterator_get_error_code($transliterator);
$errorMessage = transliterator_get_error_message($transliterator);
if ($errorCode !== false && $errorCode !== 0) {
echo 'Fehler aufgetreten!' . PHP_EOL;
echo 'Code: ' . $errorCode . PHP_EOL;
echo 'Meldung: ' . $errorMessage . PHP_EOL;
} else {
echo 'Kein Fehler. Code: ' . $errorCode . PHP_EOL;
}
// Wichtig · Fallstricke
Der zurückgegebene Fehlercode ist ein ICU-spezifischer Fehlercode. Ein Wert von 0 entspricht U_ZERO_ERROR und bedeutet, dass kein Fehler vorliegt. Positive Werte deuten auf Warnungen, negative auf echte Fehler hin.
Diese Funktion sollte immer in Kombination mit transliterator_get_error_message() verwendet werden, um eine aussagekräftige Fehlerbeschreibung zu erhalten, da die reinen Zahlencodes ohne ICU-Dokumentation schwer zu interpretieren sind.