IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

sauver une variable entre deux fonctions ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 69
    Par défaut sauver une variable entre deux fonctions ?
    Bonjour,
    voila je sais que dans des langages comme le C si une variable est definie dans une fonction lorsque cette derniere est terminer, la variable est détruite.
    il ya donc des moyens de faire persister cette variable lors de la fermeture de la fonction en changeant je croi la nomenclature lors de la definition de la variable.

    en PHP c'est apparement la meme chose mais je ne sais pas comment faire pour sauvegarder ma variable outre la fonction
    faut il la definir d'une certaine fasson?

    j'ai tenter d'utiliser return $mafonction mais ca n'a pas l'aire de fonctionner.

    avez vous la solution?
    merci d'avance.

  2. #2
    Membre expérimenté Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Par défaut
    si tu appeles une fonction ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat = appelFonction($param1Eventuel,$param2Eventuel);
    et que ta fonction est ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function appelFonction($param1,$param2)
    {
    //traitement...
    return $valeur;
    }
    ta variable $resultat sera == à ta variable $valeur de la fonction

    je ne sais pas si ça répond à ta question...
    tu peux également retourner un booléen, un tableau, etc...

  3. #3
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    Autre solution est de passer ta variable en adresse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    appelFonction($param1Eventuel,$param2Eventuel,&$resultat);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function appelFonction($param1,$param2,$result)
    {
    //traitement...
    $result=$valeur;
    }

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 69
    Par défaut
    ho vous etes rapides ^^
    bon et bien voila
    j'essai donc vos solution
    la fonction fait bien 200 lignes


    jai donc ecrit a la fin de ma fonction:
    elle est appelé de cette fasson:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        spgm_DisplayPicture($strParamGalleryId, $strParamPictureId, $strParamFilterFlags);
    je fait donc à la suite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$result=spgm_DisplayPicture($strParamGalleryId, $strParamPictureId, $strParamFilterFlags);
    echo"$result";
    pourant je n'ai pas de valeur pour $result
    max je n'est pas vraiment compris tu crée une seconde variable dans la fonction?
    si c'est le cas j'ai essayé mais cela revien au meme puisque la nouvelle variable est détruite lors de la fermeture de la fonction.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 69
    Par défaut
    Bon jai recommencé l'opération et finalement sa marche si je ne double pas l'apelle de la fonction donc sa marche !
    je vous remerci Azazel et Max de votre rapidité et de votre pertinence sa fait plaisir!!
    à bientot!

  6. #6
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    Citation Envoyé par shloka
    Bon jai recommencé l'opération et finalement sa marche si je ne double pas l'apelle de la fonction donc sa marche !
    je vous remerci Azazel et Max de votre rapidité et de votre pertinence sa fait plaisir!!
    à bientot!

    non tu ne créer pas de nouvelle variable, tu passes seulement l'adresse d'une variable dans laquelle tu veux que ta fonction ecrive. Du coup meme quand la fonction est terminer il ne detruit pas la variable car il s'est juste servit de l'adresse memoire de ta variable pour ecrire dans cette case memoire.

    normalement si tu regardes le contenu de ta variable $result après le passage dans ta fonction, il a du changer.

    mais par contre je me suis trompé dans le code c'est pour cela que ça ne fonctionne pas.

    Dans fonction 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    appelFonction($param1Eventuel,$param2Eventuel,$resultat);
    Dans fonction 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    function appelFonction($param1,$param2,&$result)
    { //traitement... $result=$valeur; }
    Dans fonction 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var_dump($resultat);
    Il me semble que c'est appelé passage en référence. Cela te permet entre autre d'économiser de la mémoire.

    Pour info

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/11/2010, 09h45
  2. Passer une variable entre 2 fonctions
    Par mihaispr dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 29/03/2009, 20h12
  3. passer une variable entre deux classes as3
    Par sanatou dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 27/06/2008, 21h52
  4. Partager une variable entre deux sites web
    Par debutantasp dans le forum ASP
    Réponses: 3
    Dernier message: 12/05/2008, 20h03
  5. Passer une variable entre deux fenêtres
    Par DeezerD dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/08/2005, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo