Start · Sprachen · PHP · Referenz · intl_error_name

intl_error_name

Funktion

Gibt den symbolischen Namen (ICU-Fehlerkonstante) zu einem gegebenen ICU-Fehlercode zurück.

seit PHP 5.3.0 Kategorie: string

Signatur

intl_error_name(int $error_code): string

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

Typ
string
Beschreibung
Gibt den symbolischen ICU-Konstantennamen als Zeichenkette zurück, z. B. "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;
Fehlercode: -128 Fehlername: U_ILLEGAL_ARGUMENT_ERROR Fehlermeldung: collator_create: unable to open ICU collator: U_ILLEGAL_ARGUMENT_ERROR

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)
Fehlercode: 0 Fehlername: U_ZERO_ERROR U_ZERO_ERROR U_ILLEGAL_ARGUMENT_ERROR

// 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.