Start · Sprachen · PHP · Referenz · transliterator_get_error_code

transliterator_get_error_code

Funktion

Gibt den letzten Fehlercode des angegebenen <code>Transliterator</code>-Objekts zurück.

seit PHP 5.4.0 Kategorie: string

Signatur

transliterator_get_error_code(Transliterator $transliterator): int|false

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

Typ
int|false
Beschreibung
Gibt den letzten ICU-Fehlercode als 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;
Ergebnis: Hello World Fehlercode: 0

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;
}
Kein Fehler. Code: 0

// 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.