recuperer la valeur d'une fonction et l'utiliser dans une autre 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 : recuperer la valeur d'une fonction et l'utiliser dans une autre fonction ?

par niuxe » 14 mai 2009, 21:53

Salut Gandolfi,


désolé si ma question est un peu béta mais j'ai beau cherché sur google et le forum je ne trouve pas de reponse.
Je te propose de faire un tour ici et plus précisément ici. Sinon, tu as également ce site qui devrait t'aider.


Je te propose de regarder ce script (ci-dessous) et de le décortiquer afin que tu comprennes mieux comment récupérer la valeur d'une fonction entres autres :

Code : Tout sélectionner

<?php function maFunctionA(){ $maVarEnlocalDeLafonctionA = "test"; return $maVarEnlocalDeLafonctionA; } function maFunctionB(){ $monNombreEnLocal = 1; $monNombreEnLocal += 5; return $monNombreEnLocal; } function maFunctionC($monParametre){ $maStringEnLocal = $monParametre." - avec des morceaux de texte en plus -"; $maStringEnLocal .= " et encore du texte en plus"; return $maStringEnLocal; } #-------------------------------------------------------- $hr = "<hr />"; $uneVarEnDehorDuneFonction = ""; $uneAuntreVarEnDehorDuneFonction = 15; $uneAuntreVarEnDehorDuneFonction ++; echo maFunctionA(); echo $hr; $uneVarEnDehorDuneFonction = maFunctionB(); echo $uneVarEnDehorDuneFonction.$hr; echo maFunctionC("test secondaire").$hr; $uneAuntreVarEnDehorDuneFonction = maFunctionD(); echo $uneAuntreVarEnDehorDuneFonction.$hr; #--------------------------------------------- function maFunctionD(){ global $uneAuntreVarEnDehorDuneFonction; $uneAuntreVarEnDehorDuneFonction += 34; $uneVarEnLocal = maFunctionA()." - avec des nombres en plus : "; $uneVarEnLocal .= $uneAuntreVarEnDehorDuneFonction; return $uneVarEnLocal; } ?>
Si tu as des questions, n'hésite pas :)



++

par gandolfi » 13 mai 2009, 21:40

en fait la fonction A est une fonction déja existante dans un script avec un return null. J'ai voulu recuperer une valeur à l'interieur pour l'exploiter ailleurs dans mon script.

J'ai déja essayé en mettant global mais quand je veux me servir de $postid dans la fonction 3 alors rien ne s'affiche.

Code : Tout sélectionner

$postid="rien"; fonction 1() { global $postid; $postid= "test"; return NULL; } fonction 3 () { global $postid; $final = $postid +5; return $final; }

par Ryle » 13 mai 2009, 21:21

Tu as deux solutions... la plus évidente serait de passer les paramètres à tes fonctions lorsque tu les appelles, et leur faire retourner les résultats dont tu as besoin :
function fonctionA ($parametre) {
  traitement...
  return valeur;
}

$resultatDeLaFonction = fonctionA($valeurAPasserEnParametre);
Tu peux ainsi passer des paramètres à une fonction et récupérer les résultats de leurs traitements.

L'autre solution consiste à utiliser les variables globales qui te permettent d'accéder et éventuellement de modifier une variable qui se trouve en dehors de la fonction :
$var = 0;

function fonctionA() {
  global $var; // fait référence à la variable externe
  $var = 1; // pas besoin de retourner de valeur pour altérer la variable externe
}

fonctionA(); // appel à la fonction
echo $var; // affiche "1"

recuperer la valeur d'une fonction et l'utiliser dans une au

par gandolfi » 13 mai 2009, 20:44

salut,

désolé si ma question est un peu béta mais j'ai beau cherché sur google et le forum je ne trouve pas de reponse.

j'ai 3 fonctions
- La 1ere contient une variable qui m'interesse: $postid = 'test';
- La 2eme effectue un test et si celui ci est ok, elle execute la 3 eme fonction
- La 3eme fonction execute une ecriture dans la BDD avec la valeur $postid de la 1ere fonction mais rien n'arrive.

Comment peut on passer la valeur $postid de la fonction 1 à 3 ?

Merci beaucoup