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 :

Portée des variables


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut Portée des variables
    J'essai de développer en objet.

    J'aimerai récupérer mes toutes mes variables $_GET et les passée dans mes functions.

    Ensuite, j'aimerai récupérer à l'extérieur de mes fonctions, le travail fait sur ses variables.

    La question principale est comment exporter les variables locales en globales.

    Phase 1.
    J'ai une adresse
    style index.php?size=12
    OU
    style index.php?nav=1
    OU
    style index.php?size=12&nav=1

    Le but étant de récupérer les noms "nav" et "size".
    Pour cela je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extract($_GET,EXTR_OVERWRITE);
    Ensuite je vais créer mon objet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    extract($_GET,EXTR_OVERWRITE);
     
     
    class parametre {
      	var $id ;
        var $mon_parametre ;
    	var $valeur_parametre ;
     
     
        function parametre($id, $mon_parametre, $valeur_parametre) {
    	$this->id = $id;
          $this->mon_parametre = $mon_parametre;
          $this->valeur_parametre = $valeur_parametre;
    	  }
     
    	 function enregistre() {
     
    $id = $this->id;
    $param = $this->mon_parametre;
    $valeur = $this->valeur_parametre; 
     
    //Si on ne trouve pas  de variables dans le get , on lui met la valeur par defaut
    		if(!isset($param)){
    			$$id = $valeur;
    		}
        }
     
    }
     
    $sizeobjet = new parametre(size,&$size,12);
      $sizeobjet->enregistre();
     
    $sizeobjet = new parametre(nav,&$nav,1);
      $sizeobjet->enregistre();
    //Test si ca fonctionne? la mes deux varibales ne passent pas, si l'une des deux n'est pas spécifiée dans l'adresse
    echo $size;
    echo $nav;
    Dans un premier temps je voudrais pouvoir exporter mes resultats, car j'exploite les $size et $get tout au long de mon site.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sizeobjet = new parametre(size,&$size,12);
      $sizeobjet->enregistre();
     
    $sizeobjet = new parametre(nav,&$nav,1);
      $sizeobjet->enregistre();

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2003
    Messages : 217
    Par défaut
    Tu peux faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function enregistre()
    {
    $var = $this->mon_parametre;
    GLOBAL $$var;
    $$var = $this->ma_valeur;
    }
    où mon_parametre est le nom du paramètre, et ma_valeur le nom de la valeur, ce qui enregistre $machin = "truc" si la valeur de mon_parametre est "machin" et la valeur de ma_valeur est "truc"...

  3. #3
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut
    c'est à peu pret ca que j'ai fait.

    Voici mon code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    //Récupère Variables de GET et SESSION
    extract($_SESSION,EXTR_SKIP);
    extract($_GET,EXTR_OVERWRITE);
     
    //Passage de paramètre
    class parametre {
      	var $id ;
        var $mon_parametre ;
    	var $valeur_parametre ;
     
    		//Récupération de la configuration
        	function parametre($id, $mon_parametre, $valeur_parametre) {
    			$this->id = $id;
          		$this->mon_parametre = $mon_parametre;
          		$this->valeur_parametre = $valeur_parametre;
    	  	}
     
    		//Traitement des paramètres
    	 	function enregistre() {
     
    			$id = $this->id;
    			$param = $this->mon_parametre;
    			$valeur = $this->valeur_parametre; 
    			global $$id;//Fourni variables à tout le site
     
    				//Si on ne trouve pas  de variables dans le get , on lui met la valeur par defaut
    				if(!isset($param)){
    					$$id = $valeur;
    				}
    			//On enregistre la valeur dans la session
    			$_SESSION[$id] =  $$id;	
        	}	
    }
     
    $sizeobjet = new parametre(size,&$size,12);
      $sizeobjet->enregistre();
     
    $sizeobjet = new parametre(nav,&$nav,1);
      $sizeobjet->enregistre();
    merci bcp.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2003
    Messages : 217
    Par défaut
    que veux tu de plus alors ? ...

  5. #5
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut
    cest bon.

    cest resolu. merci monsieur

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2003
    Messages : 217
    Par défaut
    De rien, si ce que j'ai dit a pu te servir à quelquechose...

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/02/2005, 10h05
  2. [FLASH MX] Portée des variables ???
    Par mic79 dans le forum Flash
    Réponses: 2
    Dernier message: 08/02/2005, 11h21
  3. Portée des variables vbscript vers ASP
    Par Immobilis dans le forum ASP
    Réponses: 3
    Dernier message: 03/11/2004, 11h14
  4. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 11h34
  5. [Portée] portée des variables
    Par parksto dans le forum Langage
    Réponses: 7
    Dernier message: 09/05/2004, 22h05

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