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 wird. so exit() is exit and die() is also exit :)
Mit Aliasen können Programmierer das verwenden, mit dem sie vertraut sind. Ich erinnere mich, dass ich besser gegangen bin als gestorben. Einige andere erinnern sich, dass sie besser sterben als gehen.
Obwohl sie dasselbe tun, reserviere ich normalerweise diefür fehlerbezogene Stopps und exitfür alle anderen Szenarien. Es scheint einfach besser zu fließen, wenn man den Code liest.
nextgentech
7
Es tut mir leid, dies wiederzubeleben, aber zumindest für mich ... dieist das Schreiben viel schneller als exit... Ich fange an zu verwenden, exitweil es für Nicht-PHP-Programmierer besser lesbar ist, aber dienur 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.
... 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.
Obwohl es sich um die 100. Antwort handelt, die besagt, dass sie gleichwertig sind (wie auch in meiner Antwort zu sehen ^^), fügt dies wirklich einige SEHR gute Punkte hinzu. Vor allem, dass sie in anderen Sprachen NICHT gleich sind (daher in erster Linie die Verwirrung). (+1)
Levite
@Levit, nein, nein, du verstehst es total falsch . Niemand besitzt Namen und verschiedene Sprachen verwenden dieselben Namen auf ungleiche Weise wieder. Das ist in Ordnung, weil wir keine weitere Standardmethode benötigen . Die "Verwirrung an erster Stelle" ist darauf zurückzuführen, dass PHP einer Funktion zwei verschiedene Namen zuweist .
Pacerier
2
@ Pacerier: Sicher, wenn man es unter dem Gesichtspunkt "Wer ist schuld?" Betrachtet, ist das absolut richtig. Es ist aber auch eine Tatsache, dass sie einfach verschiedene Dinge in mehreren Sprachen bedeuten (was in Ordnung ist). Wenn man es aus einer neutralen Perspektive betrachtet, gilt es definitiv: Es gibt Verwirrung aufgrund der unterschiedlichen Bedeutungen (auch wenn es PHPs Schuld ist, zwei Aliase mit gleichen Funktionen zu erstellen). Ich wollte definitiv keinen Finger auf eine dieser Sprachen richten, wenn Sie das aus meinem Kommentar verstanden haben ... (großartig xkcd btw (Y) ^^)
Levite
2
Dies sollte auf jeden Fall die gewählte Antwort sein, gute Beschreibung!
Cody Brown
Ein anderer Benutzer, der geantwortet exit()hat und die Verbindung währenddessen nicht die()schließt, scheint relevant zu sein.
ner0
62
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.
@Zeitlos würden Perfektionisten nicht sagen "PHP ist eine interpretierte Sprache". PHP ist eine Sprache, die je nach Server-Setup entweder interpretiert oder kompiliert werden kann.
Pacerier
29
Und ... "sterben" ist 3 Zeichen lang gegen 4 für "exit". So werden 25% weniger Speicher und Dateispeicher benötigt! ;)
Jan Derk
2
'"Wenn es sich um eine lange Liste von Funktionen handelt, die mit" d "beginnen, und um eine kürzere Liste, die mit" e "beginnt, muss eine Zeitstrafe verhängt werden, die den Funktionsnamen für Funktionen nachschlägt, die mit" e "beginnen bedeuten, dass die Zeitstrafe passieren würde, wenn die Funktion beginnend mit d ? nachgeschlagen wird. Je größer die Liste, desto länger ist normalerweise die Zeit, um einen Gegenstand darin zu finden.
Pere
9
Wie Sie geschrieben haben, haben Sie den PHP-Parser nicht studiert. Vielen Dank für diese nutzlose Antwort, da sie auf Ihren Träumen basiert, wie PHP implementiert wird.
Es ist auch praktisch, wenn jemand aus einer anderen Sprache kommt, wenn er in irgendeiner Weise vertraut ist
Rohan Khude
Beachten Sie, dass , wenn mit PHP interaktiv ( php -a) die;, die();, exit;und exit();haben keine Wirkung, während exit(ohne Semikolon) interaktiven Modus verlässt.
Santiago Aristi
31
Wie alle anderen richtigen Antworten sagen, dieund exitsind 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 exitweiß 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 dieoder exitwenn 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();?>
Diese Seite sagt, dieist 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 diein Zukunft wird es vielleicht nichts mehr geben.
Er sagt auch , In einigen Fällen gibt es keine bevorzugten Namen unter den mehrfachen ist, is_int()und is_integer()sind gleich gut zum Beispiel. Mit Blick auf den php-srcCommit-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.
Mark Amery
2
@ MarkAmery, Während seine Prämissen nicht zu seiner Schlussfolgerung führen, ist die Schlussfolgerung selbst gültig: ~ "Nenn mich paranoid, aber es kann exitin Zukunft keine geben. Oder es kann diein Zukunft keine geben"
Pacerier
@ Pacerier Ganz richtig. Möglicherweise gibt es in Zukunft kein PHP mehr. Lassen Sie uns also alle diesen Programmier-Gig beenden und Bestatter oder Steuereintreiber werden. Schließlich ist nichts sicher als Tod und Steuern.
Mark Amery
@ MarkAmery, "Kein PHP in der Zukunft" scheint überdurchschnittlich paranoid zu sein. Die Geschichte hat gezeigt, dass wahnsinnig beliebte Sprachen nicht so leicht absterben (Fortran!).
Pacerier
1
Sei nicht paranoid. Ausgang wird nie sterben . :)
Dolmen
10
Diese Ausgabe von https://3v4l.org zeigt, dass Die und Exit funktional identisch sind.
Dieser Artikel ist einfach komisch; An der Scannerdefinition können Sie erkennen, dass sie gleichwertig sind. Wenn es einen Unterschied gibt, wurde der Test möglicherweise ohne Opcache ausgeführt.
Ja͢ck
Der Artikel handelt von einem Benchmark, der nicht reproduziert werden kann, da der Code nicht veröffentlicht wird. Ignoriere es einfach.
Dolmen
0
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.
Das OP fragt nur nach PHP-Exit- und Die-Funktionen.
Black Mamba
1
Ja, und ich habe nur diese Frage beantwortet. Zu beachten ist jedoch, dass es nicht nur um den Unterschied in der Funktionalität geht.
Luo Jiong Hui
Eine meiner schönsten Funktionen heißt pd () - was bedeutet, bitte stirb. Ich bin mir also nicht sicher, ob der Würfel in einem solchen Kontext eine schlechte Sache ist :)
Ivan Ponomarev
Als Full-Stack-Entwickler sehe ich mich nicht nur als Programmierer, sondern auch als User Experience-Designer. In diesem Zusammenhang ist Sympathie wichtig. Sympathie beeinflusst nicht nur, wie ich die Benutzeroberfläche entwerfe, sondern auch, wie ich codiere.
Luo Jiong Hui
0
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?
@AdarshMadrecha das ist nicht wahr. Wenn sie sich innerhalb oder außerhalb einer Unterfunktion befinden, stoppt das PHP-Skript immer.
MERT DOĞAN
-5
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:
functiondie($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.
Aliasing bedeutet nicht, eine Funktion aufzurufen. Überprüfen Sie Ihre Annahmen, bevor Sie eine Hypothese ausarbeiten.
Dolmen
@dolmen Aliase ruft immer Hauptfunktionen in harten Codes auf. Dies ist eine allgemeine Programmierregel.
MERT DOĞAN
@ MERTDOĞAN Ein Alias ruft nichts auf. Ein Alias (in der Programmierung oder im wirklichen Leben) ist nur ein anderer Name eines Objekts (das bereits einen Namen hat). die()ist keine separate Funktion. Es ist nur ein anderer Name von exit(). Diese Antwort enthält falsche Aussagen zu Aliasen und deren Leistung.
Axiac
docs.php.net/manual/en/… Aliase ruft immer wie im obigen Beispiel auf. Lerne etwas und komm zurück.
MERT DOĞAN
-10
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:
Das ist nicht wahr. dieund exitsind 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 dieund exitist buchstäblich Aliase für jeden-andere.
Ircmaxell
6
Nun, wenn Sie wissen, dass Sie exit verwenden können ("Ich beende ...").
Yuda Prawira
4
Bisher 23 positive Stimmen für eine Antwort, die einfach falsch ist! Aus diesem Grund stimme ich erst dann über Antworten ab, wenn ich alle konkurrierenden Antworten auf die Frage gelesen und verstanden habe (abgesehen von schrecklich geschriebenen Antworten, aus denen ich keinen Sinn machen kann).
Mark Amery
3
Genau darüber schreibt @GeoffreyHale in seiner Antwort. Was Sie als Antwort gepostet haben, ist das, was man erwarten würde, wenn man aus einer Sprache wie Perl oder C kommt. Aber wie die anderen erwähnten, gilt dies nicht für PHP. Sie könnten wirklich in Betracht ziehen, Ihre Antwort zu bearbeiten, um dies widerzuspiegeln, oder sie anderweitig zu löschen.
so exit() is exit and die() is also exit :)
Antworten:
Es gibt keinen Unterschied - sie sind gleich.
PHP Handbuch für
exit
:PHP Handbuch für
die
:quelle
die
für fehlerbezogene Stopps undexit
für alle anderen Szenarien. Es scheint einfach besser zu fließen, wenn man den Code liest.die
ist das Schreiben viel schneller alsexit
... Ich fange an zu verwenden,exit
weil es für Nicht-PHP-Programmierer besser lesbar ist, aberdie
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önnendie
.UNTERSCHIED IM URSPRUNG
Der Unterschied zwischen
die()
undexit()
in PHP ist ihre Herkunft .exit()
ist vonexit()
in C .die()
ist ausdie
in Perl .FUNKTIONAL GLEICHWERTIG
die()
undexit()
sind äquivalente Funktionen.PHP-Handbuch
PHP Handbuch für
die
:PHP Handbuch für
exit
:PHP-Handbuch für die Liste der Funktions-Aliase :
UNTERSCHIEDLICH IN ANDEREN SPRACHEN
die()
undexit()
sind unterschiedlich in anderen Sprachen , aber in PHP sind sie identisch.Aus einem weiteren PHP-Rant :
quelle
exit()
hat und die Verbindung währenddessen nichtdie()
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.
quelle
PHP Handbuch auf die :
Sie können sogar
die;
das Gleiche tun wieexit;
- mit oder ohne Parens.Der einzige Vorteil bei der Wahl
die()
überexit()
, kann die Zeit , die Sie auf die Eingabe einen zusätzlichen Brief verschonen sein ;-)quelle
php -a
)die;
,die();
,exit;
undexit();
haben keine Wirkung, währendexit
(ohne Semikolon) interaktiven Modus verlässt.Wie alle anderen richtigen Antworten sagen,
die
undexit
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 ichdie("Something went wrong.");
das Skript , um es zu "töten".Wenn ich exit benutze:
Wenn ich sterbe:
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 sehedie
, 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
oderexit
wenn es nicht meinen Konventionen entspricht ...quelle
Hier ist etwas, das ziemlich interessant ist. Obwohl
exit()
unddie()
äquivalent sind,die()
schließt die Verbindung.exit()
schließt die Verbindung nicht.die()
::exit()
::Ergebnisse:
exit()
::die()
::Nur für den Fall, dass Sie dies für Ihr Projekt berücksichtigen müssen.
Credits: https://stackoverflow.com/a/20932511/4357238
quelle
exit
und aufdie
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!' );
quelle
Diese Seite sagt,
die
ist ein Verbündeter vonexit
, also sind sie identisch. Erklärt aber auch:Nennen Sie mich also paranoid, aber
die
in Zukunft wird es vielleicht nichts mehr geben.quelle
is_int()
undis_integer()
sind gleich gut zum Beispiel. Mit Blick auf denphp-src
Commit-Verlauf auf GitHub befindet sich dasdie()
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 kanndie
in Zukunft keine geben"Diese Ausgabe von https://3v4l.org zeigt, dass Die und Exit funktional identisch sind.
quelle
Sie sind im Wesentlichen gleich, obwohl dieser Artikel etwas anderes vorschlägt.
quelle
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.
quelle
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)
quelle
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.
Hier ist der Screenshot:
quelle
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?
quelle
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:
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.
quelle
die()
ist keine separate Funktion. Es ist nur ein anderer Name vonexit()
. 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:
Welches ist das gleiche wie:
quelle
die
undexit
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. Sodie
undexit
ist buchstäblich Aliase für jeden-andere.