Was ist der Unterschied zwischen echo ('exit'); sterben; und sterben ('exit') ;?

8

Ich habe Code gesehen, der das macht:

%Vor%

Und andere, die nur die verwenden:

%Vor%

Gibt es irgendeinen Unterschied darin, wann es das Programm beenden würde, sollte mir der dahinter folgende Code bekannt sein? und so weiter

AKTUALISIEREN

Ich frage hauptsächlich, ob es ein Kodierungsstil ist, oder ob es einen wirklichen Grund gibt, warum einige auf eine Weise gegen eine andere kodiert sind. Ich frage nicht, was der Unterschied zwischen exit und die ist.

    
Neal 28.04.2011, 21:03
quelle

7 Antworten

21

Nein, es gibt keinen Unterschied; Sie schreiben "exit" in STDOUT und beenden das Programm.

Ich würde die die("exit") -Methode bevorzugen, da sie weniger eintippt, leichter auskommentiert und semantisch klarer ist.

Was "Geschwindigkeit" angeht, warum interessiert es dich, was schneller ist? Brauchen Sie Ihr Programm, um wirklich schnell zu sterben?

RE: Ihr Update

  

... irgendein inhärenter Unterschied, wenn es das Programm beenden würde ...

Es gibt keine Differenz, die inhärent oder nicht vorhanden ist. Sie sind identisch. Die zweite Option, die('exit') , ist eine einzelne Anweisung und benötigt daher keine Klammern, wenn sie mit einer if -Anweisung verwendet wird. Das hat nichts mit dem die zu tun und alles, was mit Blöcken und Ablaufsteuerung in C-artigen Sprachen zu tun hat.

RE: Ihr Kommentar / zweites Update

Welchen Weg Sie die wählen, ist eine Frage der persönlichen Präferenz. Wie gesagt, sie sind identisch . Ich würde die zweite Option aus den oben genannten Gründen wählen: Kürzer, klarer, sauberer, was meiner Meinung nach "besser" ist.

Der Unterschied zwischen exit und die besteht darin, dass exit Ihnen erlaubt, einen Status ungleich Null zurückzugeben, während die 0 zurückgibt. Keine der Funktionen ist "besser", sie dienen unterschiedlichen Zwecken.

    
meagar 28.04.2011, 21:04
quelle
1

kein Unterschied.

Und warum nach Geschwindigkeitsunterschied fragen, da du stirbst.

    
mathk 28.04.2011 21:05
quelle
0

Es gibt einen Unterschied, Jungs. DIE () kann mit anderen Funktionen verwendet werden, die nicht übertragen werden können, während das Echo als Fehler oder Ausnahme abgefangen werden muss.

%Vor%

Gibt dir eine sofortige Fang / Würfelsequenz.

    
meteorainer 28.04.2011 21:34
quelle
0

Für das spezifische Beispiel, das Sie gepostet haben, sind sie gleich, da $status eine Zeichenkette ist, aber als Das Handbuch sagt, dass dies möglicherweise nicht immer der Fall ist:

  

Wenn der Status eine Zeichenkette ist, diese Funktion   druckt den Status unmittelbar vor dem Beenden.

     

Wenn status eine Ganzzahl ist, dieser Wert   wird als Exit-Status und verwendet   nicht gedruckt. Exit-Status sollte sein   im Bereich von 0 bis 254 der Exit-Status   255 ist von PHP reserviert und soll nicht   verwendet werden. Der Status 0 wird verwendet   beende das Programm erfolgreich.

Wenn Sie also anstelle von 'exit from program' ausgeben möchten, sagen Sie 42 , was Sie wirklich tun müssten:

%Vor%     
Alix Axel 28.04.2011 21:42
quelle
0

Die Sprachkonstrukte exit() und die() sind äquivalent, zumindest nach dem PHP-Handbuch. Ich verwende exit (), wenn diese Zeile erreicht werden soll und das Skript an diesem Punkt anhalten soll. Stirb () dagegen ist für Situationen, die nicht auftreten sollten. Das ist genau das, was sich für mich am natürlichsten anfühlt. Sie müssen mir nicht zustimmen.

    
Arjan 28.04.2011 22:04
quelle
0

Meistens ist es Kodierungsstil. Wenn Sie jedoch Debug-Meldungen ausgeben, ist echo then die bessere:

%Vor%

wird

%Vor%

Natürlich hätten Sie wahrscheinlich

%Vor%

Das ist viel einfacher für mein Auge als

%Vor%     
Phil Lello 28.04.2011 22:48
quelle
0

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%     
EngineerCoder 02.01.2015 16:39
quelle

Tags und Links