Start · Sprachen · PHP · Referenz · die

die

Funktion

Gibt eine Meldung aus und beendet die Skriptausführung sofort — identisch mit <code>exit</code>.

seit PHP 4.0.0 Kategorie: misc

Signatur

die(string|int $status = 0): never

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

Typ
never
Beschreibung
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.';
Datenbankverbindung fehlgeschlagen.

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.';
Fehler: Konfigurationsdatei nicht gefunden.

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