Wieso benutzt man manchmal ein die() und manchmal ein exit()? Diese Frage wird man sich sicherlich irgendwann mal stellen, wenn man wieder in PHP-Scripten rumwühlt oder selbst eins verfasst. Wann benutze ich denn jetzt ein die() und wann benutze ich ein exit()? Und wo liegt der Unterschied?
PHP und der Ausgang durch exit: Genau wie durch die break-Anweisung kann die Ausführung einer Routine durch ein exit() beendet werden. Im Gegensatz zum break wird allerdings nicht nur eine Schleife vorzeitig verlassen oder aus einer Switch-Anweisung ausgebrochen, sondern das gesamte Programm wird beendet. Bedeutet: Es wird nichts mehr an den Browser geschickt, weder der PHP-Code nach dem exit() als auch der Code, der in anderen Sprachen (z.B. HTML) im gleichen Script steht. Das PHP-Script und damit die Übertragung wird vollständig beendet. Da das unerwartete rausspringen aus einer Methode im Regelfall nicht einem sauberen Programmierstil entspricht, sollte es nur im Notfall oder am Ende eines Scripts zum Einsatz kommen.
1
2
3
4
5
|
<php echo "Ich verlasse das Programm" ; exit (); echo "Diese Meldung wird nicht mehr angezeigt" ; ?> |
“die” – Das sterbende Script: Genauso wie auch das exit-Sprachkonstrukt regelt auch die() einen sofortigen Abbruch des Scripts. Im wesentlichen fällt auch kein Unterschied auf: Beide Befehle sorgen für einen unverzüglichen Stop des Programms, beide geben bei Übergabe eines Strings den jeweiligen Text aus und beide nehmen einen int-Wert als Errorcode an. Aber wieso wurden dann beide implementiert? Wo liegt der Nutzen?
1
2
3
4
5
|
<php echo "Ich verlasse das Programm" ; die (); echo "Diese Meldung wird nicht mehr angezeigt" ; ?> |
die() und exit() – gibt es Unterschiede? Nein. Beide Sprachkonstrukte liefern ein T_EXIT, wenn der Parser eines der beiden Befehle ausführt. Daher ist es absolut egal, ob man nun lieber die() oder exit() einsetzt. Das die() stellt dementsprechend ein Alias für exit() dar. Über den Grund der Implementierung kann man nur spekulieren. Nachdem andere Sprachen (wie Perl) auch auf ein die-Konstrukt setzten, haben sich die PHP-Entwickler wahrscheinlich ebenfalls dafür entschieden, um eine gewisse Kompatibilität vom Syntax her zu gewährleisten.
Fazit: Es ist egal! Oder doch nicht? Grundsätzlich ist es natürlich egal, da beide die selbe Funktion erfüllen. Trotzdem sollte man sich (in allgemeiner Betrachtung) immer an die neuere Namensform – hier also die() – orientieren. Viele Funktionen wurden im Rahmen von API-Änderungen oder aus anderen Gründen umbenannt und dann nur für die Abwärtskompatibilität beibehalten (Quelle). Über das exit() müssen wir uns aber wahrscheinlich keine Sorgen machen und können es daher natürlich weiterhin benutzen.