Start · Sprachen · PHP · Referenz · numfmt_get_error_message

numfmt_get_error_message

Funktion

Gibt die Fehlermeldung des letzten Vorgangs eines <code>NumberFormatter</code>-Objekts zurück.

seit PHP 5.3.0 Kategorie: string

Signatur

numfmt_get_error_message(NumberFormatter $formatter): string

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

Typ
string
Beschreibung
Gibt die Fehlermeldung des letzten Vorgangs als Zeichenkette zurück. Bei Erfolg wird '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";
}
Parse fehlgeschlagen! Fehlercode: 9 Fehlermeldung: U_PARSE_ERROR

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";
Prozedural: U_ZERO_ERROR OOP: U_ZERO_ERROR

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