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 :

Déclaration de variables globales


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 66
    Points : 120
    Points
    120
    Par défaut Déclaration de variables globales
    Bonjour,

    je voulais savoir si on pouvait déclarer une variable global qui sera utilisé dans les classes déclarés aprés. Je sais que c'est contraire à la POO que d'utiliser une variable qui ne la concerne pas mais ca me faciliterai les choses.
    Pour que ca soit plus clair, je vais vous donner un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $var="test"; //J'ai essayé en mettant le mot clé global aussi mais ca ne marche pas
    class x {
     
      function  __construct(){
        echo $var; //Il n'affiche rien :s
      }
    }
    Merci d'avoir lu ce message.

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 273
    Points
    273
    Par défaut
    Et quel serait l'interet ?? Expliques un peu mieux ce que tu souhaites faire et pourquoi. Quelle est ta problématique ?? Parce que tu peux surement la déclarer autrement ta variable et ce serait certainement plus propre....

    Patouche

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      function  __construct(){
        echo $GLOBALS['var'];
      }
    Ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      function  __construct(){
        global $var;
        echo $var;
      }
    Pour que cela fonctionne. Cf portée des variables.

    Niveau POO, il y a éventuellement d'autres solutions.

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 273
    Points
    273
    Par défaut
    julp, c'est une solution mais une variable public (éventuellement static) serait surement plus approprié non (ou privé avec ses accesseur) ??...

    Enfin, je préfères éviter les global surtout par habitude....

    Patouche

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Je réponds uniquement à la question de base Après, oui, ce serait probablement une solution mais le contexte nous est ici totalement inconnu.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 66
    Points : 120
    Points
    120
    Par défaut
    Bonjour,

    Erf, j'avais mal placé mon global ^^
    Sinon pour le contexte, je développe une application facebook et pour pouvoir accéder à des fichiers externes, j'avais besoin de l'url de l'application. Cette variable étant stocké dans un fichier externe (pour éviter au cas où il y'a changement de serveur, de me retaper tous les fichiers), je voulais aussi l'utiliser dans ma classe. D'où ma question ^^

    En tout cas merci pour vos réponses.

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    dans une classe on ecrirait plutot ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    class x {
      function  show(){
        echo $this->var;
      }
    }
     
    $foo = new x();
    $foo->var = "test";
    $foo->show();
     
    ?>

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/12/2013, 16h07
  2. Déclaration de variables globales et de constantes?
    Par flyingman dans le forum x86 16-bits
    Réponses: 7
    Dernier message: 28/05/2013, 11h32
  3. Déclaration des variables globales en javascript non recommandée
    Par DarkPoster14 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/01/2013, 13h31
  4. déclaration de variable globale dans excel
    Par pierreTarek dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/07/2012, 17h52
  5. déclaration de variable globale
    Par sandball22 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 16/02/2011, 19h07

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