Signatur
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
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;
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;
}
// 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.