768 Stimmen

Was sind die Unterschiede zwischen die() und exit() in PHP?

Was sind die Unterschiede zwischen die() y exit() Funktionen in PHP?

Ich denke, beide haben die gleiche Funktionalität, aber ich bezweifle, dass es etwas gibt, das sich in beiden unterscheidet... was ist es?

38voto

Lukas Punkte 797

Wie alle anderen richtigen Antworten auch, die y exit sind identisch/Alias.

Obwohl ich persönlich die Konvention habe, dass ich, wenn ich die Ausführung eines Skripts beenden will, wenn es erwartet und gewünscht wird, die exit; . Und wenn ich die Ausführung aufgrund von Problemen beenden muss (konnte keine Verbindung zur Datenbank herstellen, kann nicht in eine Datei schreiben usw.), verwende ich die("Something went wrong."); um das Skript zu "töten".

Wenn ich Exit verwende:

header( "Location: http://www.example.com/" ); /* Redirect browser */
/* Make sure that code below does not get executed when we redirect. */
exit; // I would like to end now.

Wenn ich "sterben" verwende:

$data = file_get_contents( "file.txt" );
if( $data === false ) {
    die( "Failure." ); // I don't want to end, but I can't continue. Die, script! Die!
}
do_something_important( $data );

Auf diese Weise kann ich, wenn ich sehe exit an einem bestimmten Punkt in meinem Code weiß ich, dass ich an diesem Punkt aussteigen möchte, weil die Logik hier endet. Wenn ich sehe die Ich weiß, dass ich die Ausführung fortsetzen möchte, dies aber aufgrund eines Fehlers bei der vorherigen Ausführung nicht kann oder sollte.

Das funktioniert natürlich nur, wenn man allein an einem Projekt arbeitet. Wenn es mehr Leute gibt, wird niemand sie daran hindern, die die o exit wo es nicht meinen Konventionen entspricht...

20voto

aagjalpankaj Punkte 1032

Von der Funktionalität her sind sie identisch, aber ich verwende sie in den folgenden Szenarien, um den Code lesbar zu machen:

Verwenden Sie die(), wenn ein Fehler auftritt und Sie die Ausführung abbrechen müssen.

z.B.. die( 'Oops! Something went wrong' );

Verwenden Sie exit(), wenn kein Fehler aufgetreten ist und die Ausführung beendet werden muss.

z.B.. exit( 'Request has been processed successfully!' );

13voto

Simon77 Punkte 336

Diese Ausgabe von https://3v4l.org zeigt, dass Würfel und Ausgang funktional identisch sind. enter image description here

11voto

Pedram Behroozi Punkte 2287

Diese Seite sagt die ist ein Verbündeter von exit Sie sind also identisch. Das erklärt aber auch, dass:

es gibt Funktionen, deren Namen sich aufgrund einer API-Bereinigung oder aus einem anderen Grund geändert haben, und die alten Namen werden nur aus Gründen der Abwärtskompatibilität als Aliasnamen beibehalten. Es ist in der Regel eine schlechte Idee, diese Art von Aliasen zu verwenden, da sie an Veralterung oder Umbenennung gebunden sein können, was zu unportablen Skripten führen wird.

Nennt mich paranoid, aber vielleicht gibt es keine die in der Zukunft.

7voto

o.k.w Punkte 24819

Sie sind im Wesentlichen identisch, auch wenn diese Artikel etwas anderes vermuten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X