2016-11-27 6 views

Antwort

2

exit, exit;, exit() und exit(); sind genau die gleichen, aber die Tatsache ist, dass Sie sollten nicht Ende Ihr Skript mit einem Ausgang () Ruf, es ist nur schlechte Übung (aber es funktioniert).

EDIT

Klärende, warum ich sagte, es ist „schlechte Praxis“, es geht nicht um die Funktionalität von „exit“ selbst, ist es OK, um die Skriptausführung zu stoppen, wenn etwas Schlimmes passiert, aber das Konzept von „etwas schlecht "ist wirklich breit. Selbst wenn eine unerwünschte Bedingung auftritt, sollte der normale Ausführungsablauf im Allgemeinen bis zum Ende der Datei reichen. Gerade dieses Beispiel betrachten:

...some init stuff... 
if (!user_is_authenticated) { 
    ...print some nasty message... 
    exit(); 
} 
...continue with normal stuff... 

Ein besserer Ansatz wäre:

...some init stuff... 
if (user_is_authenticated) { 
    ...continue with normal stuff... 
} 
else { 
    ...print some nasty message... 
} 

Was ist der Unterschied? Der Unterschied ist, dass Sie in der zweiten Version nicht exit() verwenden müssen, was bedeutet, dass wenn Sie eines Tages nach BEIDE "normalen" und "unerwünschten" Ausführungsabläufen etwas tun müssen, Sie es einfach am Ende hinzufügen können die Datei.

Es ist mehr oder weniger das gleiche Argument, warum sollten Sie nicht am Ende der Funktion „Rückkehr“ in Funktionsrümpfe nutzen außer ..

+0

Können Sie erklären, warum es eine schlechte Praxis ist? – andrewsi

+0

sicher, überprüfen Sie die aktualisierte Antwort – Johnny

2

Es ist immer eine gute Praxis zu verwenden semicolon

<?php 

//exit program normally 
exit; 
exit(); 
exit(0); 

//exit with an error code 
exit(1); 
exit(0376); //octal 

?> 
+0

Ich war verwirrt, als mein Freund mir sagte, ich solle exit statt exit benutzen; . Danke :-D –

+0

Exit ist keine Funktion. Es ist ein Sprachkonstrukt. – andrewsi

+0

Dank @andrewsi –

0

Wie Johnny sagte, alle diese vier Formen der ‚exit‘ Erklärung Arbeit . Sowohl als auch exit() funktionieren, wenn es keine Anweisungen gibt, denen eines dieser beiden Sprachkonstrukte folgt. Es funktioniert nicht, wenn andere PHP-Anweisungen von diesen beiden Konstrukten gefolgt werden und Semikolon den Zweck hat, die Anweisung zu beenden, um zur nächsten Anweisung überzugehen. Daher müssen Sie exit; oder exit(); verwenden, um Syntaxfehler zu vermeiden und auch in diesem Fall , ohne Semikolon zu verwenden, wird in den Codierungskonventionen als eine schlechte Praxis angesehen.