Signatur
Beschreibung
intlcal_get_error_code() liefert den letzten intern gespeicherten ICU-Fehlercode eines IntlCalendar-Objekts. Jede Operation auf dem Kalender-Objekt kann intern einen Fehler- oder Statuscode setzen; diese Funktion erlaubt es, nach einer Operation zu prüfen, ob ein Fehler aufgetreten ist.
Die zurückgegebenen Codes sind ICU-Statuscodes (vom Typ UErrorCode). Werte kleiner als 0 stehen für Fehler, der Wert 0 (U_ZERO_ERROR) bedeutet Erfolg, und positive Werte können Warnungen anzeigen. Mit der Funktion intl_is_failure() lässt sich prüfen, ob es sich um einen echten Fehler handelt.
Die prozedurale Variante erwartet ein IntlCalendar-Objekt als Parameter; alternativ kann die Methode IntlCalendar::getErrorCode() direkt auf dem Objekt aufgerufen werden.
Typische Einsatzfälle sind die Fehlerbehandlung nach Datumsberechnungen, Zeitzonenoperationen oder beim Verarbeiten von Kalenderdaten in internationalisierten Anwendungen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $calendar Pflicht | IntlCalendar | Das IntlCalendar-Objekt, dessen letzter Fehlercode abgefragt werden soll. |
Rückgabewert
0 entspricht U_ZERO_ERROR (kein Fehler), negative Werte zeigen Fehler an, positive Werte können Warnungen darstellen.Beispiele
Fehlercode nach einer Kalenderoperation prüfen
<?php
$cal = IntlCalendar::createInstance('Europe/Berlin', 'de_DE');
// Eine Datumsoperation ausführen
$cal->set(2024, 1, 30); // 30. Februar (ungültig, wird aber toleriert)
$errorCode = intlcal_get_error_code($cal);
if (intl_is_failure($errorCode)) {
echo 'Fehler aufgetreten: ' . intl_error_name($errorCode) . PHP_EOL;
} else {
echo 'Kein Fehler. Code: ' . $errorCode . ' (' . intl_error_name($errorCode) . ')' . PHP_EOL;
}
// Zeitstempel ausgeben (Kalender korrigiert automatisch)
echo 'Timestamp: ' . $cal->toDateTime()->format('Y-m-d') . PHP_EOL;
OOP-Stil und prozeduraler Stil im Vergleich
<?php
$cal = IntlCalendar::createInstance('UTC', 'en_US');
// Prozeduraler Stil
$codeProc = intlcal_get_error_code($cal);
echo 'Prozedural – Fehlercode: ' . $codeProc . PHP_EOL;
// OOP-Stil
$codeOop = $cal->getErrorCode();
echo 'OOP – Fehlercode: ' . $codeOop . PHP_EOL;
// Fehlernamen ausgeben
echo 'Fehlername: ' . intl_error_name($codeOop) . PHP_EOL;
// Wichtig · Fallstricke
Der gespeicherte Fehlercode wird durch jede neue Operation auf dem IntlCalendar-Objekt überschrieben. Es empfiehlt sich daher, den Fehlercode unmittelbar nach der zu prüfenden Operation abzufragen.
Für eine lesbare Fehlerbeschreibung kann intlcal_get_error_message() bzw. IntlCalendar::getErrorMessage() verwendet werden, die den Fehlercode als Text zurückgibt.
Falls kein gültiges IntlCalendar-Objekt übergeben wird, gibt die Funktion false zurück und erzeugt eine PHP-Warnung.