Ich habe das gerade gesehen
%Vor% Ich habe vorher noch kein einfaches return
gesehen, und ich habe es noch nie benutzt. Meine einzige Vermutung ist, dass es sich einfach wie jedes return 'something'
verhält (die Funktion anhält), außer dass es tatsächlich kein Ergebnis zurückgibt.
Außerdem, was würde in dieser Situation passieren?
%Vor% Ich weiß, dass es ein schlechtes Beispiel ist (es sollte wahrscheinlich false zurückgeben oder eine Ausnahme auslösen), aber wäre es ein Fehler oder wäre $var
einfach null oder leer?
Eine Rückgabe ohne Wert gibt null zurück.
Weitere Informationen aus dem Handbuch:
Wenn die Anweisung return () aus einer Funktion aufgerufen wird, beendet sie sofort die Ausführung der aktuellen Funktion und gibt ihr Argument als Wert des Funktionsaufrufs zurück. return () beendet auch die Ausführung einer eval () - Anweisung oder Skriptdatei.
Wird der globale Bereich aufgerufen, wird die Ausführung der aktuellen Skriptdatei beendet. Wenn die aktuelle Skriptdatei include () ed oder require () ed ist, wird die Kontrolle an die aufrufende Datei zurückgegeben. Wenn die aktuelle Skriptdatei include () ed ist, wird der Wert für return () als Wert des Aufrufs include () zurückgegeben. Wenn return () in der Hauptskriptdatei aufgerufen wird, endet die Skriptausführung. Wenn die aktuelle Skriptdatei von den Konfigurationsoptionen auto_prepend_file oder auto_append_file in der Datei php.ini benannt wurde, wird die Ausführung dieser Skriptdatei beendet.
Kurze Antwort. Es beendet nur die Funktion, es ähnelt einer Funktion ohne Rückgabeanweisung. Nichts wird zurückgegeben, die Funktion wird einfach verlassen.
In Ihrem zweiten Beispiel würde $ var = nichts.
Warum nicht ausführen und sehen?
Ja, zurück; "oder return (); in einer Funktion stoppt die Ausführung dieser Funktion (oder der Datei, wenn die Rückgabeanweisung nicht in einer Funktion ist) an diesem Punkt (wenn der Code ausgeführt wird) und gibt technisch einen Nullwert zurück.
Ihr erstes Beispiel würde den Header "HTTP / 1.1 403 Forbidden" ausgeben und dann diese Funktion beenden, wenn request :: is_ajax () gleich true ist.
In Ihrem Codebeispiel:
%Vor%Sie können Folgendes haben:
Ich würde vermuten, dass Sie wahrscheinlich die if-Anweisung in entweder:
ändern möchten %Vor%Wenn Sie nur eine Zeichenfolge oder
mit do_something () verknüpfen möchten %Vor%Wenn Sie nur $ var tun möchten, wenn es gesetzt ist. Vielleicht möchten Sie auch Ihre Funktionsdeklaration ändern zu: Funktionstext ($ var == NULL) { Wenn Sie also Text ohne Parameter aufrufen, wird $ var automatisch auf null gesetzt.