Signatur
Beschreibung
intl_get_error_message() liefert eine menschenlesbare Beschreibung des zuletzt aufgetretenen Fehlers innerhalb der intl-Erweiterung (International Components for Unicode). Die Funktion ergänzt intl_get_error_code(), indem sie statt eines numerischen Fehlercodes einen erklärenden Text zurückgibt.
Die Fehlermeldung setzt sich in der Regel aus dem ICU-Fehlernamen sowie einer zusätzlichen kontextbezogenen Beschreibung zusammen, die von der jeweiligen intl-Klasse oder -Funktion gesetzt wurde. Sie ist daher aussagekräftiger als der bloße Fehlercode und eignet sich gut für Debugging-Ausgaben oder Log-Einträge.
Typischerweise wird diese Funktion nach dem Aufruf von Klassen wie Collator, NumberFormatter, MessageFormatter oder IntlDateFormatter eingesetzt, um im Fehlerfall eine präzise Diagnose zu ermöglichen. Solange kein Fehler aufgetreten ist, gibt die Funktion 'U_ZERO_ERROR' zurück.
Beachte, dass der Fehlerzustand global pro Prozess/Thread gespeichert wird und durch nachfolgende intl-Aufrufe überschrieben werden kann. Fehler sollten daher unmittelbar nach dem kritischen Aufruf abgefragt werden.
Rückgabewert
'U_ZERO_ERROR'.Beispiele
Fehlermeldung nach fehlgeschlagener Collator-Erstellung auslesen
<?php
// Ungültiges Locale angeben, um einen Fehler zu provozieren
$coll = Collator::create('ungueltig_LOCALE_XYZ');
if ($coll === null) {
echo 'Fehlercode: ' . intl_get_error_code() . PHP_EOL;
echo 'Fehlermeldung: ' . intl_get_error_message() . PHP_EOL;
} else {
echo 'Collator erfolgreich erstellt.' . PHP_EOL;
}
Fehlerstatus nach erfolgreichem Aufruf prüfen
<?php
// Gültiges Locale – kein Fehler erwartet
$coll = Collator::create('de_DE');
echo 'Fehlercode: ' . intl_get_error_code() . PHP_EOL;
echo 'Fehlermeldung: ' . intl_get_error_message() . PHP_EOL;
// Ergebnis eines Vergleichs
$result = $coll->compare('Ärger', 'Apfel');
echo 'Vergleichsergebnis: ' . $result . PHP_EOL;
echo 'Fehlermeldung nach compare: ' . intl_get_error_message() . PHP_EOL;
// Wichtig · Fallstricke
Globaler Zustand: Der Fehlerzustand der intl-Erweiterung ist global und wird durch jeden nachfolgenden intl-Aufruf überschrieben. Lese intl_get_error_message() daher unmittelbar nach dem zu prüfenden Aufruf aus, bevor weitere intl-Operationen stattfinden.
Viele intl-Klassen (z. B. Collator, NumberFormatter) besitzen zusätzlich eigene Methoden wie getErrorMessage() bzw. getErrorCode(), die den objektspezifischen Fehlerstatus liefern und gegenüber den globalen Funktionen bevorzugt werden sollten, wenn mehrere Objekte parallel verwendet werden.