Version complète: sur le forum Webmaster Hub : Return quoi ?
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
stever34
Bonjour

je ne comprend pas l'intéret de RETURN

CODE
<?php
// Ci-dessous, la fonction qui calcule le volume du cône
function VolumeCone($rayon, $hauteur)
{
$volume = $rayon * $rayon * 3.14 * $hauteur * (1/3); // calcul du volume
return $volume;
}

$volume = VolumeCone(3, 1);
echo "Le volume d'un cône de rayon 3 et de hauteur 1 est de $volume";
?>


c'est quoi le role de return il envoie la valeur a qui ???
Portekoi
Bonjour,

Return te permets de récupérer la valeur renvoyée (return) par la fonction.


Portekoi
Dan
Tu as une ligne où il est écrit:
CODE
$volume = VolumeCone(3, 1);


Donc $volume prend la valeur retournée par la fonction volumeCone() ... et en Anglais "retourner" se dit "return" tongue.gif

Dan
Bourinho
Salut,

je pense que tu fais une confusion entre le $volume present dans la fonction que tu définis et celui qui intervient ensuite!

en fait, le $volume present dans la fonction n'existe pas ailleurs que dans la fonction... je crois que l'on appelle ça une variable locale.

L'autre est present en tant que variable pour tout ton fichier.

Pour etre plus clair, le script pourrait s'ecrire comme suit :
CODE
<?php
// Ci-dessous, la fonction qui calcule le volume du cône
function VolumeCone($rayon, $hauteur)
{
$volumelocal = $rayon * $rayon * 3.14 * $hauteur * (1/3); // calcul du volume
return $volumelocal;
}

$volumeglobal = VolumeCone(3, 1);
echo "Le volume d'un cône de rayon 3 et de hauteur 1 est de $volumeglobal";
?>


Donc le return, dans ta fonction sert à savoir quelle valeur renvoyer lorsque l'on appelle ta fonction VolumeCone. Sans ce return, t'as fonction fait le calcul mais ne renvoit rien...pas top wink.gif

En espérant avoir été clair, ce dont je ne suis pas sur...

[Edit]Double grillage sad.gif [/Edit]
stever34
Oui merci la confusion vient bien du fait que les 2 variables portent le meme nom mais qu'en réalité ce ne sont pas les même variable.

mais c'est toujours pas clair a 100 %

Dans la fonction j'ai $volumelocal, qui n'existe que dans la fonction.

quand le script exécute la ligne

CITATION
$volumelocal = $rayon * $rayon * 3.14 * $hauteur * (1/3); // calcul du volume


Il fait bien le calcul ? donc $volumelocal existe.


CITATION
return $volumelocal;


return renvoie la variable $volumelocal a qui ??? puisque en dehors du script ma variable ne s'appelle plus pareil $volumeglobal
captain_torche
En gros, return va signifier "envoie le résultat à l'appelant".
Là, l'appelant, c'est $volumeglobal.

Textuellement, tu dis :
$volumeglobal = le résultat de la fonction VolumeCone

Sinon, $volumeLocal existe, mais juste au sein de la fonction.
Il n'existe pas en-dehors.
Bourinho
Salut,

en fait, quand tu mets dans ton code :
CODE
$volumeglobal = VolumeCone(3, 1);


Le serveur comprend : il utilise la fonction VolumeCone avec les paramètres (3,1).

Alors il cherche la definition de la fonction VolumeCone... et il la trouve juste au dessus!
Donc il utilise la defintion de ta fonction avec les variables citées precedement. Et dans ta definition, tu utilises une variable locale $volumelocal qui ne sert que d'intermédiaire finalement. Et à la fin de ta définition, tu dis juste de remplacer VolumeCone(3,1) par la valeur prise par $volumelocal (c'est le return qui signifie ça...)

en espérant avoir été clair...et c'est pas evident

[Edit]Re-Grillage...[/Edit]
Remi
Pour simplifier, il faut se représenter une fonction comme un ensemble autonome et indépendant:

On lui donne des paramètres en entrée et elle nous donne quelque chose en sortie.
Une fois la fonction exécutée, les variables créées par la fonction n'existent plus.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.