question sur return d'une fonction

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : question sur return d'une fonction

par Ajoloca » 06 nov. 2006, 17:11

Re,

De rien, pense au résolu.

par DaD » 06 nov. 2006, 17:08

Ok, merci pour ces précieux conseil Ajoloca, je vais essayer d'appliquer tout ça.

par Ajoloca » 06 nov. 2006, 17:05

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.

par DaD » 06 nov. 2006, 16:58

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 ?

Code : Tout sélectionner

Global $variable1; $variable1 = 'oui';

par Ajoloca » 06 nov. 2006, 16:54

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];

par Vikchill » 06 nov. 2006, 16:54

Si ta fonction doit te retourner plusieurs valeurs, il vaut peut-être mieux déclarer tes variables en global dans la fonction.

par DaD » 06 nov. 2006, 16:48

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?

par Ajoloca » 06 nov. 2006, 16:40

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(...) ;

question sur return d'une fonction

par DaD » 06 nov. 2006, 16:33

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 :

Code : Tout sélectionner

mafonction(...); echo "ma variable est : $mavariable1";
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