return

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

return retourne le contrÎle du programme au module appelant. L'exécution reprend alors à l'instruction suivante de l'invocation du module.

Si appelée depuis une fonction, la commande return termine immédiatement la fonction et retourne l'argument qui lui est passé. return interrompt aussi l'exécution d'une commande eval() ou de scripts.

Si appelĂ©e depuis l'environnement global, l'exĂ©cution du script est interrompue. Si le script courant Ă©tait inclus avec la structure include ou require, alors le contrĂŽle est rendu au script appelant. De plus, si le fichier du script courant a Ă©tĂ© inclus via l'instruction include, alors la valeur retournĂ©e sera utilisĂ©e comme rĂ©sultat de l'instruction include. Si return est appelĂ©e depuis le script principal, alors l'exĂ©cution du script s'arrĂȘte. Si le script courant est auto_prepend_file ou auto_append_file dans le fichier php.ini, alors l'exĂ©cution du script s'arrĂȘte.

Pour plus d'informations, voir retourner des valeurs.

Note: Il est à noter que puisque return est une structure de langage, et non une fonction, les parenthÚses entourant les arguments ne sont pas nécessaires et leur utilisation est découragée.

Note: Si aucun paramĂštre n'est fourni, alors les parenthĂšses doivent ĂȘtre omises et null sera retournĂ©. L'appel de return avec des parenthĂšses mais sans argument rĂ©sultera en une alerte d'analyse.

À partir de PHP 7.1.0, les dĂ©clarations de retour sans argument dans les fonctions qui dĂ©clarent un type de retour dĂ©clenchent une E_COMPILE_ERROR, sauf si le type de retour est void, auquel cas les dĂ©clarations de retour avec un argument dĂ©clenchent cette erreur.

add a note

User Contributed Notes 2 notes

up
188
warhog at warhog dot net ¶
20 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
82
J.D. Grimes ¶
12 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".