Signatur
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
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);
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);
// 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.