Signatur
Beschreibung
die ist ein Sprachkonstrukt und vollständiger Alias von exit. Es beendet die Ausführung des aktuellen PHP-Skripts unmittelbar. Optional kann eine Statusmeldung oder ein numerischer Exit-Code übergeben werden.
Wird ein String übergeben, wird dieser vor dem Beenden ausgegeben. Wird ein Integer (0–254) übergeben, wird er als Exit-Status an das Betriebssystem zurückgegeben, ohne etwas auszugeben. Der Wert 255 ist für PHP reserviert. Der Status 0 signalisiert üblicherweise einen erfolgreichen Abschluss.
die wird häufig für einfache Fehlerbehandlung eingesetzt, z. B. direkt nach einem fehlgeschlagenen Datenbankverbindungsversuch oder nach Header-Weiterleitungen, um sicherzustellen, dass kein weiterer Code ausgeführt wird. In modernen Anwendungen empfiehlt sich jedoch der Einsatz von Exceptions statt die.
Registrierte Shutdown-Funktionen (via register_shutdown_function) sowie Destruktoren von Objekten werden beim Aufruf von die noch ausgeführt, sofern keine fatalen Fehler vorliegen. finally-Blöcke hingegen werden nicht ausgeführt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $status | string|int | 0 | Ein String wird vor dem Beenden ausgegeben. Ein Integer (0–254) wird als Exit-Code an das Betriebssystem übergeben, ohne Ausgabe. Ohne Argument wird der Exit-Code 0 verwendet. |
Rückgabewert
die kehrt niemals zurück. Die Skriptausführung wird unwiderruflich beendet.Beispiele
Fehlermeldung bei fehlgeschlagener Datenbankverbindung
<?php
$pdo = new PDO('mysql:host=localhost;dbname=shop', 'user', 'geheim')
or die('Datenbankverbindung fehlgeschlagen.');
echo 'Verbindung erfolgreich.';
Weiterleitung mit sofortigem Skriptabbruch
<?php
header('Location: https://example.com/login.php');
die(); // Verhindert, dass weiterer Code nach dem Redirect ausgeführt wird
Numerischer Exit-Code für CLI-Skripte
<?php
$datei = '/var/data/config.json';
if (!file_exists($datei)) {
fwrite(STDERR, "Fehler: Konfigurationsdatei nicht gefunden.\n");
die(1); // Exit-Code 1 signalisiert dem Betriebssystem einen Fehler
}
echo 'Konfiguration geladen.';
// Wichtig · Fallstricke
Sicherheitshinweis: Niemals benutzerkontrollierte Daten ungefiltert an die übergeben, da der String direkt ausgegeben wird und XSS-Angriffe ermöglicht. Stattdessen htmlspecialchars() verwenden oder eine eigene Fehlerseite ausgeben.
Architektur-Hinweis: In größeren Anwendungen gilt die/exit als schlechte Praxis, da es Unit-Tests erschwert und die Kontrolle über den Programmfluss entzieht. Exceptions und strukturierte Fehlerbehandlung sind vorzuziehen.
finally-Blöcke: Im Gegensatz zu Exceptions werden finally-Blöcke bei die nicht ausgeführt. Shutdown-Funktionen und Destruktoren hingegen schon.