Start · Sprachen · PHP · Referenz · resourcebundle_get_error_code

resourcebundle_get_error_code

Funktion

Gibt den letzten ICU-Fehlercode zurück, der bei einer Operation auf dem angegebenen <code>ResourceBundle</code>-Objekt aufgetreten ist.

seit PHP 5.3.2 Kategorie: string

Signatur

resourcebundle_get_error_code(ResourceBundle $bundle): int

Beschreibung

resourcebundle_get_error_code() ist die prozedurale Variante von ResourceBundle::getErrorCode() und liefert den zuletzt aufgetretenen ICU-Fehlercode für das übergebene Ressourcenbündel-Objekt. ICU (International Components for Unicode) verwendet interne Fehlercodes, um den Zustand von Operationen zu beschreiben.

Typische Anwendungsfälle sind die Fehlerbehandlung nach dem Laden oder Zugreifen auf Ressourcen: Gibt die Funktion 0 (U_ZERO_ERROR) zurück, war die letzte Operation erfolgreich. Jeder andere Wert weist auf einen Fehler oder eine Warnung hin. Der zugehörige menschenlesbare Text kann über resourcebundle_get_error_message() abgerufen werden.

Die Funktion ist besonders nützlich, wenn ein Zugriff auf einen nicht vorhandenen Schlüssel oder ein fehlendes Gebietsschema (Locale) erfolgt ist und resourcebundle_get() null zurückgegeben hat. In diesem Fall hilft der Fehlercode dabei zu unterscheiden, ob der Wert wirklich fehlt oder ob ein anderes Problem vorliegt.

  • Rückgabewert 0: kein Fehler (U_ZERO_ERROR)
  • Positive Werte: Warnungen (Operation wurde fortgesetzt)
  • Negative Werte: Fehler (Operation abgebrochen)

Parameter

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

Rückgabewert

Typ
int
Beschreibung
Gibt den ICU-Fehlercode der letzten Operation auf dem Ressourcenbündel zurück. 0 bedeutet Erfolg (U_ZERO_ERROR), positive Werte stehen für Warnungen und negative Werte für Fehler.

Beispiele

Fehlercode nach erfolgreichem Zugriff prüfen

<?php
$bundle = resourcebundle_create('de', '/usr/share/php/icu-data');

$value = resourcebundle_get($bundle, 'ExistingKey');
$errorCode = resourcebundle_get_error_code($bundle);

if ($errorCode === 0) {
    echo "Kein Fehler, Wert: " . $value . PHP_EOL;
} else {
    echo "Fehlercode: " . $errorCode . PHP_EOL;
    echo "Fehlermeldung: " . resourcebundle_get_error_message($bundle) . PHP_EOL;
}
Kein Fehler, Wert: ...

Fehlererkennung bei fehlendem Schlüssel

<?php
$bundle = resourcebundle_create('de_DE', null, true);

// Zugriff auf einen nicht vorhandenen Schlüssel
$value = resourcebundle_get($bundle, 'NichtVorhandenerSchluessel');
$errorCode = resourcebundle_get_error_code($bundle);

if ($value === null && $errorCode !== 0) {
    echo "Schlüssel nicht gefunden." . PHP_EOL;
    echo "ICU-Fehlercode: " . $errorCode . PHP_EOL;
    echo "Fehlermeldung: " . resourcebundle_get_error_message($bundle) . PHP_EOL;
} else {
    echo "Wert: " . $value . PHP_EOL;
}
Schlüssel nicht gefunden. ICU-Fehlercode: 2 Fehlermeldung: U_MISSING_RESOURCE_ERROR

// Wichtig · Fallstricke

Der Fehlercode wird intern von ICU verwaltet und entspricht den ICU-Konstanten wie U_ZERO_ERROR, U_MISSING_RESOURCE_ERROR usw. PHP stellt diese Konstanten nicht direkt zur Verfügung – es empfiehlt sich daher, den Wert 0 als Erfolgsindikator zu verwenden und bei jedem anderen Wert die Nachricht über resourcebundle_get_error_message() zu lesen.

Diese Funktion entspricht exakt ResourceBundle::getErrorCode() – beide Varianten sind austauschbar und liefern identische Ergebnisse.