Aller au contenu

Sujets conseillés

Posté

Bonjour

je ne comprend pas l'intéret de RETURN

<?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 ???

Posté

Tu as une ligne où il est écrit:

$volume = VolumeCone(3, 1);

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

Dan

Posté (modifié)

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 :

<?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 ;)

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

[Edit]Double grillage :( [/Edit]

Modifié par Bourinho
Posté

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

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

Il fait bien le calcul ? donc $volumelocal existe.

return $volumelocal;

return renvoie la variable $volumelocal a qui ??? puisque en dehors du script ma variable ne s'appelle plus pareil $volumeglobal

Posté

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.

Posté (modifié)

Salut,

en fait, quand tu mets dans ton 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]

Modifié par Bourinho
Posté (modifié)

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.

Modifié par Remi

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...