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 de variable: class > include > fonction


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Par défaut Portée de variable: class > include > fonction
    Bonjour,

    Voici mon problème simplifié:
    Ce que je voudrais c'est pouvoir accéder à la variable $Mode dans la fonction RechercheUnites().
    Puis accéder par la même occasion à la variable $Strategie sans mettre global partout ^^ (Peut poser des problèmes entre plusieurs class).
    Mais $Mode me pose un problème et je voudrais de préférence ne pas le récrire dans une nouvelle variable su style $Strategie.
    Il y a t-il d'autre moyen ?

    Voici le code et ses inclusions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /* Page principal */
    class Joueurs
    {
      function Attaquer($Mode)
      {
        include('Attaquer.php5');
      }
    }
     
    $Moi=new Joueur();
    $Moi->Attaquer(1);
    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
    /* Attaquer.php5 */
     
    echo $Mode // Fonctionne
     
    ///////////////////////////////////////
    $Strategie=1;
    function RechercheUnites()
    {
      echo $Mode // Ne fonctionne pas
     
      global $Mode;
      echo $Mode // Ne fonctionne pas aussi
     
     
      echo $Strategie // Ne fonctionne pas
     
      global $Strategie;
      echo $Strategie // Ne fonctionne pas aussi
     
      echo $this->Strategie // Ne fonctionne pas non plus
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    global $Strategie;
    $Strategie=1;
    function RechercheUnites()
    {
      global $Strategie;
      echo $Strategie // Fonctionne
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $this->Strategie=1;
    function RechercheUnites()
    {
      echo $this->Strategie // Ne Fonctionne pas
    }
    Merci d'éclairer ma lanterne

  2. #2
    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
    Par défaut
    sans la définir par $this
    si tu veux une variable de class, c'est $this->var obligatoirement
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Par défaut
    Juste pouvoir utiliser la variable dans tous le fichier include, car après j'en ai pas besoin et je ne veux pas quel interfère avec un autre exécution par la suite

  4. #4
    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
    Par défaut
    un include() local n'a pas de spécificité, il faut vraiment le voir comme un copier-coller de code, il a donc exactement le meme environnement de variables que le script qui l'inclus.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Par défaut
    J'ai modifié mon premier post car en réalité ceci ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $this->Strategie=1;
    function RechercheUnites()
    {
      echo $this->Strategie // Ne Fonctionne pas
    }
    Donc pour le $this ça ne marche pas.

    Donc toujours le même problème.
    La fonction include() de fais pas que copier/coller, il est considéré comme une fonction dans une class a priori.

    Mon problème se résume a celui ci:
    http://fr.php.net/manual/fr/language...asic.php#88665 (en anglais) qui a été posté récemment par quelqu'un d'autre.

  6. #6
    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
    Par défaut
    Ta premiere ligne $this->Strategie=1; est située dans quoi ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Portée des variables: Include dans une fonction
    Par BlindeKinder dans le forum Langage
    Réponses: 9
    Dernier message: 08/02/2011, 18h45
  2. Réponses: 4
    Dernier message: 22/02/2010, 01h13
  3. Portée de variable dans un include
    Par geve2007 dans le forum Langage
    Réponses: 2
    Dernier message: 17/03/2009, 14h45
  4. [POO] Portée des variables de classe
    Par guidav dans le forum Langage
    Réponses: 3
    Dernier message: 31/01/2007, 19h27
  5. Portée de variables et de fonction?
    Par Premium dans le forum C
    Réponses: 7
    Dernier message: 09/01/2006, 17h11

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