Start · Sprachen · PHP · Referenz · user_error

user_error

Funktion

Alias von <code>trigger_error()</code> — löst eine benutzerdefinierte PHP-Fehlermeldung aus.

seit PHP 4.0.0 Kategorie: error

Signatur

user_error(string $message, int $error_level = E_USER_NOTICE): bool

Beschreibung

user_error() ist ein vollständiger Alias der Funktion trigger_error() und verhält sich identisch. Sie erzeugt eine benutzerdefinierte Fehlermeldung zur Laufzeit, die durch den konfigurierten PHP-Fehler-Handler (oder einen benutzerdefinierten Handler via set_error_handler()) verarbeitet wird.

Mit dem Parameter $error_level kann der Schweregrad des Fehlers gesteuert werden. Erlaubte Werte sind E_USER_NOTICE (Standard), E_USER_WARNING und E_USER_ERROR. Der Wert E_USER_ERROR führt standardmäßig zum Abbruch des Skripts.

Da es sich um einen Alias handelt, wird in modernem Code die direkte Verwendung von trigger_error() empfohlen. Aliases können in zukünftigen PHP-Versionen ohne Vorwarnung als veraltet markiert oder entfernt werden.

Typische Einsatzgebiete sind Debugging, das Signalisieren ungültiger Eingaben innerhalb eigener Bibliotheken oder das Auslösen von Fehlern in benutzerdefinierten Fehler-Handler-Tests.

Parameter

Name Typ Default Beschreibung
$message Pflicht string Die Fehlermeldung als Zeichenkette. Maximal 1024 Zeichen — längere Meldungen werden stillschweigend abgeschnitten.
$error_level int E_USER_NOTICE Schweregrad des Fehlers. Erlaubt sind E_USER_NOTICE, E_USER_WARNING und E_USER_ERROR. Andere Werte führen zur Rückgabe von false.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn der Fehler erfolgreich ausgelöst wurde. Gibt false zurück, wenn ein ungültiger $error_level übergeben wurde.

Beispiele

Einfache Benutzerwarnung auslösen

<?php
function divide(int $a, int $b): float|int {
    if ($b === 0) {
        user_error('Division durch null ist nicht erlaubt.', E_USER_WARNING);
        return 0;
    }
    return $a / $b;
}

echo divide(10, 0);
echo divide(10, 2);
Warning: Division durch null ist nicht erlaubt. in /pfad/zur/datei.php on line 4 0 5

Benutzerdefinierter Fehler-Handler mit user_error

<?php
function meinFehlerHandler(int $errno, string $errstr): bool {
    echo "[Fehler $errno] $errstr\n";
    return true; // Standardbehandlung unterdrücken
}

set_error_handler('meinFehlerHandler');

user_error('Ungültiger Parameter übergeben.', E_USER_NOTICE);
user_error('Kritischer Fehler im Modul.', E_USER_WARNING);
[Fehler 1024] Ungültiger Parameter übergeben. [Fehler 512] Kritischer Fehler im Modul.

// Wichtig · Fallstricke

Alias-Hinweis: user_error() ist ein Alias von trigger_error(). In neuem Code sollte stets trigger_error() verwendet werden, da Aliases in zukünftigen PHP-Versionen entfernt werden können.

Sicherheit: Fehlermeldungen sollten keine sensiblen Informationen (Passwörter, Datenbankstrukturen, interne Pfade) enthalten, da sie je nach Konfiguration in Logs oder direkt im Browser ausgegeben werden. Produktivsysteme sollten display_errors = Off gesetzt haben.

E_USER_ERROR: Das Auslösen eines E_USER_ERROR beendet die Skriptausführung, sofern kein benutzerdefinierter Handler registriert ist, der explizit true zurückgibt und die Ausführung fortsetzt.