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?
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?
Der Unterschied zwischen die()
y exit()
in PHP ist ihr Herkunft .
exit()
ist von exit()
en C .die()
ist von die
en Perl .die()
y exit()
sind gleichwertige Funktionen.
PHP-Handbuch für die
:
Dieses Sprachkonstrukt ist äquivalent zu
exit()
.
PHP-Handbuch für exit
:
Anmerkung: Dieses Sprachkonstrukt ist äquivalent zu
die()
.
PHP-Handbuch für Liste von Funktionsaliasen :
die()
y exit()
sind anders in anderen Sprachen aber in PHP sind sie identisch.
Desde Eine weitere PHP-Schelte :
...Als C- und Perl-Programmierer war ich bereit zu antworten: "Warum, exit() beendet das Programm einfach das Programm mit einem numerischen Exit-Status ab, während die() die Fehlermeldung in stderr ausgibt und das Programm mit dem Status EXIT_FAILURE verlässt". Aber dann erinnerte ich mich daran, dass wir uns im chaotischen Syntaxland von PHP befinden.
In PHP sind exit() und die() identisch.
Die Designer dachten offensichtlich: "Hmm, leihen wir uns exit() von C aus . Und Perl Leute werden es wahrscheinlich mögen, wenn wir die die() wie von Perl gewohnt auch. Huch! Wir haben jetzt zwei Exit-Funktionen! Lassen Sie uns dafür sorgen, dass sie beide eine Zeichenkette oder eine ganze Zahl als Argument nehmen können und sie identisch machen!"
Das Endergebnis ist, dass dies die Dinge nicht wirklich "einfacher" gemacht hat, nur noch verwirrender. C- und Perl-Programmierer werden weiterhin exit() verwenden, um um nur einen Integer-Exit-Wert auszugeben, und die(), um eine Fehlermeldung auszugeben und mit einem Fehler zu beenden. Neulinge und PHP-als-erste-Sprache-Leute werden sich wahrscheinlich fragen: "Ähm, zwei Exit-Funktionen, welche soll ich benutzen?" 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 Leuten zu sein, die aus verschiedenen Sprachen kommen, aber dabei schafft es verwirrende Redundanz.
Wie bereits erwähnt, erzeugen diese beiden Befehle das gleiche Parser-Token.
BUT
Es gibt einen kleinen Unterschied, nämlich die Zeit, die der Parser braucht, 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, dann muss die Suche nach dem Funktionsnamen für Funktionen, die mit "e" beginnen, mit einem Zeitverlust verbunden sein. Und es kann noch weitere Unterschiede geben, je nachdem, wie der gesamte Funktionsname geprüft wird.
Ich bezweifle, dass dies messbar ist, es sei denn, Sie haben eine "perfekte" Umgebung, die auf das Parsen von PHP ausgerichtet ist, und eine Menge von Anfragen mit verschiedenen Parametern. Aber es muss einen Unterschied geben, schließlich ist PHP eine interpretierte Sprache.
Hier ist etwas ziemlich Interessantes. Obwohl exit()
y die()
gleichwertig sind, die()
schließt die Verbindung. exit()
schließt sich nicht die Verbindung.
die()
:
<?php
header('HTTP/1.1 304 Not Modified');
die();
?>
exit()
:
<?php
header('HTTP/1.1 304 Not Modified');
exit();
?>
Ergebnisse:
die()
:
HTTP/1.1 304 Not Modified
Connection: close
exit()
:
HTTP/1.1 304 Not Modified
Connection: Keep-Alive
Keep-Alive: timeout=5, max=100
Nur für den Fall, dass Sie dies bei Ihrem Projekt berücksichtigen müssen.
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.