Antworten:
Es gibt keinen Unterschied - sie sind gleich.
PHP Handbuch für exit
:
Hinweis: Dieses Sprachkonstrukt entspricht
die()
.
PHP Handbuch für die
:
Dieses Sprachkonstrukt entspricht
exit()
.
die
für fehlerbezogene Stopps und exit
für alle anderen Szenarien. Es scheint einfach besser zu fließen, wenn man den Code liest.
die
ist das Schreiben viel schneller als exit
... Ich fange an zu verwenden, exit
weil es für Nicht-PHP-Programmierer besser lesbar ist, aber die
nur schneller zu tippen ist, wenn Sie gerade dabei sind Eile. Außerdem muss ich beim Tippen nicht die Position meiner Hände ändern, um schreiben zu können die
.
Der Unterschied zwischen die()
und exit()
in PHP ist ihre Herkunft .
exit()
ist von exit()
in C .die()
ist aus die
in Perl .die()
und exit()
sind äquivalente Funktionen.
PHP Handbuch für die
:
Dieses Sprachkonstrukt entspricht
exit()
.
PHP Handbuch für exit
:
Hinweis: Dieses Sprachkonstrukt entspricht
die()
.
PHP-Handbuch für die Liste der Funktions-Aliase :
die()
und exit()
sind unterschiedlich in anderen Sprachen , aber in PHP sind sie identisch.
Aus einem weiteren PHP-Rant :
... Als C- und Perl-Codierer war ich bereit zu antworten: "Warum, exit () beendet das Programm nur mit einem numerischen Exit-Status, während die () die Fehlermeldung an stderr druckt und mit dem Status EXIT_FAILURE beendet. "" Aber dann erinnerte ich mich, dass wir uns im chaotischen Syntaxland von PHP befinden.
In PHP sind exit () und die () identisch.
Die Designer dachten offensichtlich: "Hmm, lasst uns exit () von C ausleihen . Und Perl-Leute werden es wahrscheinlich mögen, wenn wir die () nehmen, wie es auch von Perl ist. Ups! Wir haben jetzt zwei Exit-Funktionen! Machen wir es so, dass sie beide kann einen String oder eine Ganzzahl als Argument nehmen und sie identisch machen! "
Das Endergebnis ist, dass dies die Dinge nicht wirklich "einfacher" machte, sondern nur verwirrender. C- und Perl-Codierer verwenden weiterhin exit (), um nur einen ganzzahligen Exit-Wert zu werfen, und die (), um eine Fehlermeldung zu werfen und mit einem Fehler zu beenden. Neulinge und PHP als Erstsprache werden sich wahrscheinlich fragen: "ähm, zwei Exit-Funktionen, welche soll ich verwenden?" Das Handbuch erklärt nicht, warum es exit () und die () gibt.
Im Allgemeinen hat PHP eine Menge seltsamer Redundanzen wie diese - es versucht, freundlich zu Menschen mit unterschiedlichem Sprachhintergrund zu sein, aber dabei entsteht verwirrende Redundanz.
exit()
hat und die Verbindung währenddessen nicht die()
schließt, scheint relevant zu sein.
Wie bereits erwähnt, erzeugen diese beiden Befehle dasselbe Parser-Token.
ABER
Es gibt einen kleinen Unterschied, und so lange braucht der Parser, um das Token zurückzugeben.
Ich habe den PHP-Parser nicht studiert, aber wenn es sich um eine lange Liste von Funktionen handelt, die mit "d" beginnen, und eine kürzere Liste, die mit "e" beginnt, muss es eine Zeitstrafe geben, die den Funktionsnamen für Funktionen nachschlägt, die mit "beginnen". e ". Und es kann andere Unterschiede geben, weil der gesamte Funktionsname überprüft wird.
Ich bezweifle, dass es messbar sein wird, wenn Sie nicht eine "perfekte" Umgebung haben, die sich dem Parsen von PHP widmet, und viele Anfragen mit unterschiedlichen Parametern. Aber es muss einen Unterschied geben, schließlich ist PHP eine interpretierte Sprache.
PHP Handbuch auf die :
sterben - Entspricht dem Beenden
Sie können sogar die;
das Gleiche tun wie exit;
- mit oder ohne Parens.
Der einzige Vorteil bei der Wahl die()
über exit()
, kann die Zeit , die Sie auf die Eingabe einen zusätzlichen Brief verschonen sein ;-)
php -a
) die;
, die();
, exit;
und exit();
haben keine Wirkung, während exit
(ohne Semikolon) interaktiven Modus verlässt.
Wie alle anderen richtigen Antworten sagen, die
und exit
sind identisch / Aliase.
Obwohl ich eine persönliche Konvention habe, die ich verwende, wenn ich die Ausführung eines Skripts beenden möchte, wenn es erwartet und gewünscht wird exit;
. Und wenn ich die Ausführung aufgrund einiger Probleme beenden muss (konnte keine Verbindung zu db herstellen, kann nicht in eine Datei schreiben usw.), verwende ich die("Something went wrong.");
das Skript , um es zu "töten".
Wenn ich exit benutze:
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 sterbe:
$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 exit
weiß ich , wenn ich irgendwann in meinem Code sehe, dass ich an diesem Punkt beenden möchte, weil die Logik hier endet. Wenn ich sehe die
, weiß ich, dass ich die Ausführung fortsetzen möchte, aber ich kann oder sollte aufgrund eines Fehlers in der vorherigen Ausführung nicht.
Dies funktioniert natürlich nur, wenn Sie nur an einem Projekt arbeiten. Wenn es mehr Leute gibt, wird niemand sie daran hindern, sie zu benutzen die
oder exit
wenn es nicht meinen Konventionen entspricht ...
Hier ist etwas, das ziemlich interessant ist. Obwohl exit()
und die()
äquivalent sind, die()
schließt die Verbindung. exit()
schließt die Verbindung nicht.
die()
::
<?php
header('HTTP/1.1 304 Not Modified');
die();
?>
exit()
::
<?php
header('HTTP/1.1 304 Not Modified');
exit();
?>
Ergebnisse:
exit()
::
HTTP/1.1 304 Not Modified
Connection: Keep-Alive
Keep-Alive: timeout=5, max=100
die()
::
HTTP/1.1 304 Not Modified
Connection: close
Nur für den Fall, dass Sie dies für Ihr Projekt berücksichtigen müssen.
exit
und auf die
die gleiche Weise arbeiten, sie beide enge Verbindung.
In Bezug auf die Funktionalität sind sie identisch, aber ich verwende sie in den folgenden Szenarien, um Code lesbar zu machen:
Verwenden Sie die (), wenn ein Fehler auftritt und die Ausführung gestoppt werden muss.
z.B
die( 'Oops! Something went wrong' );
Verwenden Sie exit (), wenn kein Fehler vorliegt und die Ausführung gestoppt werden muss.
z.B
exit( 'Request has been processed successfully!' );
Diese Seite sagt, die
ist ein Verbündeter von exit
, also sind sie identisch. Erklärt aber auch:
Es gibt Funktionen, die Namen aufgrund einer API-Bereinigung oder aus einem anderen Grund geändert haben, und die alten Namen werden aus Gründen der Abwärtskompatibilität nur als Aliase beibehalten. Es ist normalerweise eine schlechte Idee, diese Art von Aliasen zu verwenden, da sie möglicherweise veraltet sind oder umbenannt werden, was zu nicht portierbaren Skripten führt.
Nennen Sie mich also paranoid, aber die
in Zukunft wird es vielleicht nichts mehr geben.
is_int()
und is_integer()
sind gleich gut zum Beispiel. Mit Blick auf den php-src
Commit-Verlauf auf GitHub befindet sich das die()
Konstrukt mindestens seit 1999 in PHP, als es in ein SVN-Repository konvertiert wurde, und wahrscheinlich solange die Sprache existiert. Es scheint absurd, sich vorzustellen, dass es jemals veraltet sein wird.
exit
in Zukunft keine geben. Oder es kann die
in Zukunft keine geben"
Diese Ausgabe von https://3v4l.org zeigt, dass Die und Exit funktional identisch sind.
Sie sind im Wesentlichen gleich, obwohl dieser Artikel etwas anderes vorschlägt.
Funktionell sind sie identisch. Die Wahl des zu verwendenden Objekts ist also eine ganz persönliche Präferenz. Semantisch in Englisch sind sie unterschiedlich. Die klingt negativ. Wenn ich eine Funktion habe, die JSON-Daten an den Client zurückgibt und das Programm beendet, kann es schrecklich sein, wenn ich diese Funktion jsonDie () aufrufe, und es ist besser, sie jsonExit () aufzurufen. Aus diesem Grund benutze ich immer exit anstelle von die.
Soweit ich weiß, wenn ich mir diese Frage hier anschaue
Dort heißt es: "In PHP gibt es einen deutlichen Unterschied in der Header-Ausgabe. In den folgenden Beispielen habe ich einen anderen Header verwendet, aber um den Unterschied zwischen exit () und die () zu zeigen, der keine Rolle spielt", und getestet (persönlich)
In w3schools Quiz: Die Funktionen die () und exit () machen genau dasselbe? Meine Antwort ist falsch. Das ist eine falsche Antwort. Die richtige Antwort ist wahr.
Etwas, das ich zumindest in meinen Skripten bemerkt habe, ist, dass exit () das aktuell ausgeführte Skript stoppt und die Kontrolle an jedes aufrufende Skript zurückgibt, während die PHP in seinen Spuren stoppt. Ich würde sagen, das ist ein ziemlich großer Unterschied?
Das Ergebnis der Funktion exit () und der Funktion die () ist immer gleich. Wie auf der Alias-Handbuchseite ( http://php.net/manual/en/aliases.php ) erläutert , heißt es jedoch, dass die Funktion die () die Exit-Funktion aufruft. Ich denke, es ist hart codiert wie unten:
function die($msg){
exit($msg);
}
Dies ist kein Leistungsproblem für kleine, mittlere und große Projekte. Wenn das Projekt Milliarden hat, multiplizieren Sie Milliarden multiplizieren Sie Milliarden Prozesse, geschieht dies in einem sehr wichtigen Zustand der Leistungsoptimierung.
Aber die meisten Leute glauben nicht, dass dies ein Problem ist, denn wenn Sie so viele Prozesse haben, müssen Sie mehr Probleme denken, als wenn eine Funktion Master oder Alias ist.
Aber die genaue Antwort lautet: Die Master-Funktion ist immer schneller als der Alias.
Schließlich; Die Alias-Handbuchseite besagt, dass Sie den Würfel möglicherweise nicht mehr verwenden dürfen. Es ist nur ein Alias und veraltet.
Es ist normalerweise eine schlechte Idee, diese Art von Aliasen zu verwenden, da sie möglicherweise veraltet sind oder umbenannt werden, was zu nicht portierbaren Skripten führt. Diese Liste soll denjenigen helfen, die ihre alten Skripte auf eine neuere Syntax aktualisieren möchten.
die()
ist keine separate Funktion. Es ist nur ein anderer Name von exit()
. Diese Antwort enthält falsche Aussagen zu Aliasen und deren Leistung.
Sie klingen ungefähr gleich, aber mit exit () können Sie auch den Exit-Code Ihres PHP-Skripts festlegen.
Normalerweise brauchen Sie das nicht wirklich, aber wenn Sie Konsolen-PHP-Skripte schreiben, möchten Sie vielleicht mit Bash prüfen, ob das Skript alles richtig abgeschlossen hat.
Dann können Sie exit () verwenden und das später abfangen. Die () unterstützt das jedoch nicht.
Die () existiert immer mit Code 0. Ein Befehl die () führt also im Wesentlichen Folgendes aus:
<?php
echo "I am going to die";
exit(0);
?>
Welches ist das gleiche wie:
<?php
die("I am going to die");
?>
die
und exit
sind identisch (sie erzeugen dasselbe Parser-Token ( T_EXIT
) und werden von demselben Code ausgeführt). Wenn der Parameter eine Ganzzahl ist, gibt er diesen Code an die Shell zurück. Wenn dies nicht der Fall, wird es ausgegeben es und Rückgabe von 0. So die
und exit
ist buchstäblich Aliase für jeden-andere.
so exit() is exit and die() is also exit :)