Start · Sprachen · PHP · Referenz · intltz_get_error_code

intltz_get_error_code

Funktion

Liefert den letzten Fehlercode des <code>IntlTimeZone</code>-Objekts.

seit PHP 5.5.0 Kategorie: string

Signatur

intltz_get_error_code(IntlTimeZone $timezone): int

Beschreibung

intltz_get_error_code() ist die prozedurale Variante der Methode IntlTimeZone::getErrorCode() und gibt den ICU-Fehlercode zurück, der bei der letzten Operation auf dem übergebenen IntlTimeZone-Objekt aufgetreten ist. Dabei handelt es sich um einen numerischen Code aus der ICU-Bibliothek (UErrorCode), wobei Werte kleiner als 0 auf Fehler und Werte größer oder gleich 0 auf Erfolg oder Warnungen hinweisen.

Diese Funktion ist besonders nützlich, wenn nach dem Erstellen oder Manipulieren einer Zeitzone geprüft werden soll, ob die Operation erfolgreich war – beispielsweise wenn eine Zeitzone per Bezeichner erstellt wurde und unklar ist, ob dieser gültig war.

Für eine menschenlesbare Fehlermeldung kann zusätzlich intltz_get_error_message() verwendet werden. Beide Funktionen bilden zusammen einen vollständigen Mechanismus zur Fehlerbehandlung bei Intl-Zeitzonenoperationen.

Parameter

Name Typ Default Beschreibung
$timezone Pflicht IntlTimeZone Das IntlTimeZone-Objekt, dessen letzter Fehlercode abgefragt werden soll.

Rückgabewert

Typ
int
Beschreibung
Gibt den ICU-Fehlercode als Integer zurück. Ein Wert von 0 entspricht U_ZERO_ERROR (kein Fehler), negative Werte signalisieren Fehler, positive Werte können Warnungen darstellen.

Beispiele

Fehlercode nach gültigem Zeitzonenbezeichner prüfen

<?php
$tz = intltz_create_time_zone('Europe/Berlin');
$errorCode = intltz_get_error_code($tz);

if ($errorCode === 0) {
    echo 'Zeitzone erfolgreich erstellt: ' . intltz_get_id($tz);
} else {
    echo 'Fehler aufgetreten, Code: ' . $errorCode;
}
Zeitzone erfolgreich erstellt: Europe/Berlin

Fehlercode nach ungültigem Zeitzonenbezeichner prüfen

<?php
$tz = intltz_create_time_zone('Ungueltige/Zeitzone');
$errorCode = intltz_get_error_code($tz);
$errorMessage = intltz_get_error_message($tz);

echo 'Fehlercode: ' . $errorCode . PHP_EOL;
echo 'Fehlermeldung: ' . $errorMessage . PHP_EOL;
echo 'Verwendete Zeitzone (Fallback): ' . intltz_get_id($tz) . PHP_EOL;
Fehlercode: 0 Fehlermeldung: U_ZERO_ERROR Verwendete Zeitzone (Fallback): GMT

// Wichtig · Fallstricke

Hinweis zur ICU-Fehlerbehandlung: Im Gegensatz zu PHP-nativen Funktionen, die oft false zurückgeben, arbeitet die ICU-Bibliothek mit numerischen Fehlercodes. Ein Rückgabewert von 0 bedeutet dabei grundsätzlich keinen Fehler (U_ZERO_ERROR). Werte zwischen 1 und 0xFFFF sind Warnungen, negative Werte sind echte Fehler.

Beim Erstellen einer Zeitzone mit einem unbekannten Bezeichner fällt ICU oft stillschweigend auf GMT zurück, ohne einen Fehlercode zu setzen. Es empfiehlt sich daher, die Zeitzonenkennung über intltz_get_id() zu verifizieren.