Signatur
Beschreibung
intl_error_name() wandelt einen numerischen ICU-Fehlercode in seinen symbolischen Konstantennamen um – zum Beispiel wird der Code 0 zu "U_ZERO_ERROR" und ein negativer Fehlercode zu einem entsprechenden ICU-Fehlernamen wie "U_ILLEGAL_ARGUMENT_ERROR".
Diese Funktion ist besonders beim Debuggen von Internationalisierungsfehlern hilfreich, da die numerischen Fehlercodes allein wenig Aussagekraft haben. In Kombination mit intl_get_error_code() lässt sich der zuletzt aufgetretene Intl-Fehler sowohl als Zahl als auch als lesbarer Name ausgeben.
Zu beachten ist, dass ICU auch so genannte Warnings (positive Codes) kennt, die keinen Fehler im eigentlichen Sinne darstellen, aber dennoch einen symbolischen Namen besitzen. intl_error_name() funktioniert für beide Fälle – Fehler (negative Codes) und Warnungen (positive Codes).
Die Funktion gehört zur Intl-Erweiterung und ist nur verfügbar, wenn PHP mit ICU-Unterstützung kompiliert wurde.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $error_code Pflicht | int | Ein numerischer ICU-Fehlercode, typischerweise von intl_get_error_code() oder der getErrorCode()-Methode eines Intl-Objekts zurückgegeben. |
Rückgabewert
"U_ZERO_ERROR" oder "U_ILLEGAL_ARGUMENT_ERROR". Bei unbekannten Codes wird "U_UNKNOWN_ERROR_CODE" zurückgegeben.Beispiele
Fehlername nach einer fehlgeschlagenen Collator-Operation ausgeben
<?php
// Einen Collator mit ungültiger Locale erstellen
$collator = new Collator('ungueltige_locale_xyz');
$errorCode = intl_get_error_code();
$errorName = intl_error_name($errorCode);
echo 'Fehlercode: ' . $errorCode . PHP_EOL;
echo 'Fehlername: ' . $errorName . PHP_EOL;
echo 'Fehlermeldung: ' . intl_get_error_message() . PHP_EOL;
Fehlerfreier Zustand und dessen symbolischer Name
<?php
// Gültige Locale – kein Fehler
$collator = new Collator('de_DE');
$errorCode = intl_get_error_code();
$errorName = intl_error_name($errorCode);
echo 'Fehlercode: ' . $errorCode . PHP_EOL;
echo 'Fehlername: ' . $errorName . PHP_EOL;
// Direkte Nutzung mit einem bekannten Code
echo intl_error_name(0) . PHP_EOL; // U_ZERO_ERROR
echo intl_error_name(1) . PHP_EOL; // U_ILLEGAL_ARGUMENT_ERROR (alternativ pos. Code)
// Wichtig · Fallstricke
Die Funktion setzt voraus, dass die Intl-Erweiterung (ext-intl) aktiviert ist. Auf Systemen ohne diese Erweiterung ist intl_error_name() nicht verfügbar und führt zu einem fatalen Fehler.
Positive Fehlercodes stellen in ICU lediglich Warnungen dar und bedeuten nicht zwingend einen Fehler. intl_error_name() gibt auch für diese einen symbolischen Namen zurück.