Ich bin immer noch auf einem PHP Lernbordstein. Was ist beim Beenden eines Skripts der Unterschied zwischen exit();
/ die();
und return;
?:
Return gibt einen Wert zurück. Dies kann alles sein und ist für Funktionen gedacht.
Return gibt einen Wert (char, int, string, array ...) zurück und verlässt die Funktion.
Aus dem php-Handbuch:
Hinweis: Dieses Sprachkonstrukt ist äquivalent zu sterben ().
Aber es gibt immer noch Unterschiede zwischen stirb und exit :
Mit Hilfe von die () können Sie einen String posten: die ("Ein Fehler ist aufgetreten");
Gleiches Ergebnis mit exit ()
%Vor%ODER wenn Sie eine cli oder unix Shell sind:
Wenn Sie PHP in der Befehlszeile verwenden, gibt die Dies ("Ein Fehler ist aufgetreten") einfach "Ein Fehler ist aufgetreten" an STDOUT aus und beendet das Programm mit einem normalen Beendigungscode von 0.
%Vor%die
und exit
( äquivalente Funktionen ) Beendet die Ausführung des Skripts.
return
Gibt die Programmsteuerung an das aufrufende Modul zurück. Die Ausführung wird fortgesetzt bei die Anweisung, die auf den Aufruf des aufgerufenen Moduls folgt.
Wird die Funktion innerhalb einer Funktion aufgerufen, wird die return-Anweisung sofort zurückgegeben beendet die Ausführung der aktuellen Funktion und gibt das Argument als zurück der Wert des Funktionsaufrufs return beendet auch die Ausführung eines eval () - Anweisung oder Skriptdatei.
Wird vom globalen Bereich aufgerufen, dann Ausführung des aktuellen Skripts Datei ist beendet. Wenn die aktuelle Skriptdatei enthalten oder erforderlich war, Dann wird die Kontrolle an die aufrufende Datei zurückgegeben. Außerdem, wenn die Aktuelle Skriptdatei wurde eingefügt, dann wird der zurückgegebene Wert zurückgegeben als Wert des Include-Aufrufs zurückgegeben werden. Wenn der Rückruf von aufgerufen wird Innerhalb der Hauptskriptdatei endet die Ausführung des Skripts. Wenn die Die aktuelle Skriptdatei wurde von der Datei auto_prepend_file oder Auto_append_file Konfigurationsoptionen in php.ini, dann das Skript Die Ausführung der Datei ist beendet.
die
gegen exit
Der Unterschied zwischen die()
und exit()
in PHP ist ihre Herkunft .
PHP Handbuch für die
:
Dieses Sprachkonstrukt entspricht
exit()
.
PHP-Handbuch für exit
:
Hinweis: Dieses Sprachkonstrukt entspricht
die()
.
PHP-Handbuch für Liste der Funktionsalias :
die()
und exit()
sind anders in anderen Sprachen , in PHP sind sie identisch.
Von Noch ein PHP-Fluch :
... Als C- und Perl-Codierer war ich bereit zu antworten: "Warum, exit () kündigt einfach Aus dem Programm mit einem numerischen Exit - Status, während die Taste die Taste () ausdruckt Fehlermeldung zu stderr und beendet den Status EXIT_FAILURE. "Aber dann Ich erinnerte mich, dass wir uns in einem chaotischen Syntax-Land von PHP befinden.
In PHP sind exit () und die dieselbe () identisch.
Die Designer dachten offensichtlich "Hmm, lasst uns exit () von C ausleihen. Und Perl Leute werden es wahrscheinlich mögen, wenn wir die () wie auch von Perl nehmen. Hoppla! Wir haben jetzt zwei Exit-Funktionen! Lass es uns so machen, dass sie beide kann einen String oder eine ganze Zahl als Argument nehmen und sie identisch machen! "
Das Endergebnis ist, dass dies die Dinge nicht wirklich "leichter" gemacht hat, nur verwirrender. C- und Perl-Codierer verwenden weiterhin exit () to Werfen Sie nur einen Integer-Exit-Wert und sterben (), um eine Fehlermeldung zu werfen und mit einem Fehler beenden. Neulinge und PHP-as-a-First-Language-Leute Werde sich wohl wundern "ähm, zwei Austrittsfunktionen, welche sollte ich verwenden? "Das Handbuch erklärt nicht, warum es exit () und die sterben () gibt.
Im Allgemeinen hat PHP eine Menge seltsamer Redundanzen wie diese - es versucht es Sei freundlich zu Menschen, die aus verschiedenen Sprachen kommen, aber dabei entsteht verwirrende Redundanz.