Signatur
Beschreibung
numfmt_get_error_message() ist die prozedurale Variante von NumberFormatter::getErrorMessage() und liefert die Fehlermeldung, die beim letzten Aufruf einer Formatter-Operation (z. B. numfmt_format() oder numfmt_parse()) erzeugt wurde.
Die Funktion ist besonders nützlich, um nach einem fehlgeschlagenen Format- oder Parse-Vorgang den genauen Grund des Fehlers zu ermitteln. Sie ergänzt numfmt_get_error_code(), das den numerischen Fehlercode zurückgibt, mit einer menschenlesbaren Beschreibung.
Wurde kein Fehler ausgelöst, gibt die Funktion die Meldung U_ZERO_ERROR zurück, was bedeutet, dass der letzte Vorgang erfolgreich war. Die zurückgegebene Zeichenkette stammt aus der ICU-Bibliothek und ist auf Englisch.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $formatter Pflicht | NumberFormatter | Eine NumberFormatter-Instanz, die mit numfmt_create() oder new NumberFormatter() erzeugt wurde. |
Rückgabewert
'U_ZERO_ERROR' zurückgegeben.Beispiele
Fehlermeldung nach einem fehlgeschlagenen Parse-Vorgang
<?php
$formatter = numfmt_create('de_DE', NumberFormatter::DECIMAL);
// Ungültige Eingabe parsen (kein gültiges Dezimalformat)
$result = numfmt_parse($formatter, 'kein_zahl');
if ($result === false) {
$errorCode = numfmt_get_error_code($formatter);
$errorMessage = numfmt_get_error_message($formatter);
echo "Parse fehlgeschlagen!\n";
echo "Fehlercode: " . $errorCode . "\n";
echo "Fehlermeldung: " . $errorMessage . "\n";
} else {
echo "Ergebnis: " . $result . "\n";
}
OOP-Stil vs. prozeduraler Stil im Vergleich
<?php
// Prozeduraler Stil
$fmtProc = numfmt_create('en_US', NumberFormatter::CURRENCY);
numfmt_format_currency($fmtProc, 1234.56, 'USD');
echo "Prozedural: " . numfmt_get_error_message($fmtProc) . "\n";
// OOP-Stil (äquivalent)
$fmtOop = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
$fmtOop->formatCurrency(1234.56, 'USD');
echo "OOP: " . $fmtOop->getErrorMessage() . "\n";
// Wichtig · Fallstricke
Hinweis zur Fehlerbehandlung: Da diese Funktion immer einen String zurückgibt (auch bei Erfolg), sollte zur zuverlässigen Fehlerprüfung zunächst der Rückgabewert der auslösenden Operation (z. B. false bei numfmt_parse()) geprüft werden. Erst danach ist der Aufruf von numfmt_get_error_message() sinnvoll.
Die Fehlermeldungen stammen aus der ICU-Bibliothek und sind immer auf Englisch, unabhängig vom gesetzten Locale. Eine Übersetzung muss bei Bedarf selbst implementiert werden.