Page 1 sur 1
question sur return d'une fonction
Posté : 06 nov. 2006, 16:33
par DaD
Salut,
Ma question est surement stupide, mais je ne pige pas ce qu'il faut que je fasse.
J'ai une fonction :
Code : Tout sélectionner
function mafonction(...) {
if (blabla)
{
$mavariable1 = 'oui';
return $mavariable1 ;
}
else
{
$mavariable1 = 'non';
return $mavariable1;
}
}
puis je voudais appelé ma fonction et récupérer ma variable et agir en fonction de sa valeur, mais l'interpreteur e dis tout le temp que ma variable n'existe pas :
Pourquoi cette variable n'existe pas alors que je l'ai créer dans ma fonction?
comment faire pour que mon "echo" fonctionne?
Merci d'avance, et encore pardon pour la débilité de ma question (j'chui qu'un pov newbie

)
+
DaD
Posté : 06 nov. 2006, 16:40
par Ajoloca
Bonjour,
Comme tu le dis, tu l'as déclarée dans ta fonction. Donc elle n'est "visible" qu'à l'intérieur de la fonction
function mafonction(...) {
if (blabla){
$mavariable1 = 'oui';
}
else{
$mavariable1 = 'non';
}
return $mavariable1;
}
// Si tu veux garder la valeur de retour
$varRetour = mafonction(...) ;
echo $varRetour
// Si c'est juste pour un affichage
echo mafonction(...) ;
Posté : 06 nov. 2006, 16:48
par DaD
ha ok...et si je veux faire revenir plusieurs variable je fais comme ça ?
Code : Tout sélectionner
unction mafonction(...) {
if (blabla){
$mavariable1 = 'blue';
$mavariable2 = 'red';
$total = array ($mavariable1, $mavariable2);
return $total;
}
else{
$mavariable1 = 'non';
}
return $mavariable1;
}
// si je veux afficher la variable1
$varRetour = mafonction(...) ;
echo $total[0];
// si je veux afficher la variable1
$varRetour = mafonction(...) ;
echo $total[1];
c ça?
Posté : 06 nov. 2006, 16:54
par Vikchill
Si ta fonction doit te retourner plusieurs valeurs, il vaut peut-être mieux déclarer tes variables en global dans la fonction.
Posté : 06 nov. 2006, 16:54
par Ajoloca
Re,
C'est pas très astucieux de faire retourner à une fonction des types différents.
Pour faire ce que tu veux il vaut mieux toujours retourner un tableaux et tester le nombre de postes du tableau.
Aussi ceci n'est pas correct
$varRetour = mafonction(...) ;
echo $total[1];
Le résultat de ta fonction se trouve dans $varRetour, donc
$varRetour = mafonction(...) ;
echo $varRetour[1];
Posté : 06 nov. 2006, 16:58
par DaD
Merci Ajoloca, je crois que j'ai piger...
Qu'est ce que ça change de les passer en global? elle sont accèssible hors de ma fonction?
si oui faut il les déclarés comme ça ?
Posté : 06 nov. 2006, 17:05
par Ajoloca
Re,
En régle générale si tu as besoin de déclarer des variables globales (sauf cas extrèmes) c'est qu'il y a un PB de conception. Donc si tu peut les éviter...
Mais éffectivement tu dois déclarer ta variable en dehors de ta fonction, ensuite pour pouvoir l'utiliser dans la fonction tu dois spécifier que tu veux utiliser la variable globale avec le préfixe 'global'.
Mais je te le répète, évite-les comme la peste.
Posté : 06 nov. 2006, 17:08
par DaD
Ok, merci pour ces précieux conseil Ajoloca, je vais essayer d'appliquer tout ça.
Posté : 06 nov. 2006, 17:11
par Ajoloca
Re,
De rien, pense au résolu.