Start · Sprachen · PHP · Referenz · intlcal_get_error_message

intlcal_get_error_message

Funktion

Liefert die letzte Fehlermeldung des <code>IntlCalendar</code>-Objekts als lesbaren String.

seit PHP 5.5.0 Kategorie: string

Signatur

intlcal_get_error_message(IntlCalendar $calendar): string

Beschreibung

intlcal_get_error_message() gibt die zuletzt aufgetretene Fehlermeldung zurück, die mit dem übergebenen IntlCalendar-Objekt verknüpft ist. Diese Funktion ist das prozedurale Pendant zur Methode IntlCalendar::getErrorMessage().

Im Fehlerfall enthält die zurückgegebene Zeichenkette eine menschenlesbare Beschreibung des letzten ICU-Fehlers, z. B. U_ILLEGAL_ARGUMENT_ERROR. Bei erfolgreichen Operationen wird in der Regel U_ZERO_ERROR zurückgeliefert, was bedeutet, dass kein Fehler aufgetreten ist.

Diese Funktion ergänzt intlcal_get_error_code(), die denselben Fehler als numerischen ICU-Fehlercode liefert. Für eine vollständige Fehleranalyse empfiehlt es sich, beide Funktionen gemeinsam einzusetzen.

Besonders nützlich ist intlcal_get_error_message() beim Debuggen internationaler Kalenderoperationen, bei denen ungültige Zeitzonennamen, fehlerhafte Gebietsschemas oder ungültige Feldwerte verarbeitet werden.

Parameter

Name Typ Default Beschreibung
$calendar Pflicht IntlCalendar Das IntlCalendar-Objekt, dessen letzte Fehlermeldung abgerufen werden soll.

Rückgabewert

Typ
string
Beschreibung
Gibt die letzte Fehlermeldung als Zeichenkette zurück. Bei erfolgreichen Operationen lautet der Wert typischerweise U_ZERO_ERROR. Im Fehlerfall enthält der String eine ICU-Fehlerbeschreibung wie z. B. U_ILLEGAL_ARGUMENT_ERROR.

Beispiele

Fehlermeldung nach einer regulären Kalenderoperation ausgeben

<?php
$cal = IntlCalendar::createInstance('Europe/Berlin', 'de_DE');

// Eine gültige Operation ausführen
$cal->set(IntlCalendar::FIELD_YEAR, 2024);

// Fehlermeldung abrufen (sollte 'U_ZERO_ERROR' sein)
$message = intlcal_get_error_message($cal);
echo $message;
U_ZERO_ERROR

Fehlermeldung und Fehlercode kombiniert auswerten

<?php
$cal = IntlCalendar::createInstance('Europe/Berlin', 'de_DE');

// Ungültigen Feldwert setzen, um einen Fehler zu provozieren
$cal->set(IntlCalendar::FIELD_MONTH, 99);

$errorCode = intlcal_get_error_code($cal);
$errorMessage = intlcal_get_error_message($cal);

if ($errorCode !== IntlCalendar::ERROR_NONE) {
    echo 'Fehlercode: ' . $errorCode . PHP_EOL;
    echo 'Fehlermeldung: ' . $errorMessage . PHP_EOL;
} else {
    echo 'Kein Fehler aufgetreten.' . PHP_EOL;
    echo 'Status: ' . $errorMessage . PHP_EOL;
}
Kein Fehler aufgetreten. Status: U_ZERO_ERROR

// Wichtig · Fallstricke

Hinweis: Manche ungültigen Feldwerte (z. B. Monat 99) lösen in ICU keinen sofortigen Fehler aus, sondern werden intern normalisiert (Overflow-Verhalten). In solchen Fällen zeigt intlcal_get_error_message() weiterhin U_ZERO_ERROR an. Verlasse dich daher nicht ausschließlich auf diese Funktion zur Validierung von Eingaben.

Die Funktion ist das prozedurale Äquivalent zu IntlCalendar::getErrorMessage(). In modernem objektorientiertem Code wird der OOP-Stil bevorzugt.