PHP Conference Nagoya 2025

return

(PHP 4, PHP 5, PHP 7, PHP 8)

return gibt die Programmsteuerung an das aufrufende Modul zurück. Die Ausführung wird mit dem Ausdruck fortgesetzt, der dem Aufruf des aufrufenden Moduls folgt.

Wenn return innerhalb einer Funktion aufgerufen wird, beendet es die Ausführung der Funktion augenblicklich und übergibt den Parameter als Rückgabewert der Funktion. return beendet auch die Ausführung von Code innerhalb von eval() oder einer Skript-Datei.

Wenn es im globalen Raum aufgerufen wird, endet die Ausführung des Skripts. Wenn das aktuelle Skript mit include oder require eingebunden wurde, endet nur die Ausführung der eingebundenen Datei, und der Wert, der an return übergeben wurde, wird zum Rückgabewert des Aufrufs von include/require. Wenn return im Hauptskript aufgerufen wird, endet die Ausführung des gesamten Skripts. Wenn das aktuelle Skript durch die php.ini-Konfigurationsdirektiven auto_prepend_file oder auto_append_file aufgerufen wurde, wird die Ausführung dieses Skripts beendet.

Für mehr Informationen siehe die Dokumentation zu Rückgabewerten.

Hinweis: Weil return keine Funktion ist, sondern ein Sprachkonstrukt, sind die Klammern um den Parameter nicht erforderlich und von deren Verwendung wird abgeraten.

Hinweis: Wenn kein Parameter übergeben wird, dürfen die Klammern nicht gesetzt werden und null wird zurückgegeben. Der Aufruf von return mit Klammern aber ohne Parameter verursacht einen Parse-Error.

Seit PHP 7.1.0 lösen return-Anweisungen ohne Parameter bei Funktionen, die einen Rückgabetyp deklarieren, einen Fehler der Stufe E_COMPILE_ERROR aus, es sei denn, der Rückgabetyp ist void; in diesem Fall lösen return-Anweisungen mit einem Parameter diesen Fehler aus.

add a note

User Contributed Notes 2 notes

up
182
warhog at warhog dot net
18 years ago
for those of you who think that using return in a script is the same as using exit note that: using return just exits the execution of the current script, exit the whole execution.

look at that example:

a.php
<?php
include("b.php");
echo
"a";
?>

b.php
<?php
echo "b";
return;
?>

(executing a.php:) will echo "ba".

whereas (b.php modified):

a.php
<?php
include("b.php");
echo
"a";
?>

b.php
<?php
echo "b";
exit;
?>

(executing a.php:) will echo "b".
up
79
J.D. Grimes
11 years ago
Note that because PHP processes the file before running it, any functions defined in an included file will still be available, even if the file is not executed.

Example:

a.php
<?php
include 'b.php';

foo();
?>

b.php
<?php
return;

function
foo() {
echo
'foo';
}
?>

Executing a.php will output "foo".
To Top