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 :

[POO] Classes, Propriété et appel dynamique


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [POO] Classes, Propriété et appel dynamique
    Bonjour à tous,

    Je suis face a un problème que je n'arrive pas a resoudre.
    j'ai 2 classes
    la première TEAM dont le contenu n'est pas important
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Team
    {
      public function __construct($num)
      {
    ...
      }
     
      public function addPlayer($id,$sexe,$score)
      {
    ...
      }
    }
    La seconde DRAFT :
    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
    class Draft
    {
      public $teams;             // Liste des équipes
      public $current_team;      // Pointeur var l'équipe qui a le choix
      private $current_team_num; // Numéro de l'équipe (TEMP)
     
      public function __construct($nb_team)
      {
        // Générer les équipes
        $this->teams= array();
        for ($i=1; $i <= $nb_team ; $i++) 
        { 
          $this->teams[] = new Team($i);
        }
        // Quelle équipe commence à choisir au premier tour;
        $this->current_team_num = rand(0, ( $this->nb_team - 1 ) );
        $this->current_team = 'teams['.$this->current_team_num.']';
      }
    }
    On va dire que le random donne 0.
    Pour faire simple, je crée n Team dans DRAFT et ensuite elle vont choisir chacune leur tour.
    Je pensais pouvour faire des appels dynamiques comme le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $myDraft = new Draft(2);
    $team = $myDraft->current_team;
    var_dump($myDraft->{$team});
    $myDraft->{$team}->addPlayer()
    equivalent à un $myDraft->teams[0]->addPlayer()
    Le VAR_DUMP renvoit NULL et donc ca ne marche pas.

    Merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    le code est étrange, tu parles d'un pointeur $current_team et celui-ci ne pointe pas vers ce qu'il est censé pointé dans la mesure où il ne contient qu'une string.
    Ton "team[0]" n'est pas évalué comme une propriété de la classe (j'entends tableau) quand tu fais $myDraft->{$team};, ça reste une simple chaîne texte, cela va au-delà des possibilité de résolution à la volée des variables.

    Tu devrais plutôt exposer un getter pour récupérer cette info :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function getCurrentTeam()
    {
        return $this->teams[$this->current_team];
    }

  3. #3
    Candidat au Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Merci
    Ok je viens de tester et ça marche pour moi!

    Je suis assez débutant en objet du coup j'avais pas pensé à faire un getter.
    Et ne connaissant pas les limites de la résolution des variables à la volée je pensais que ça passerait.

    Du coup c'est plus simple et plus propre comme ç&

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

Discussions similaires

  1. Appel dynamique de classe
    Par lannel dans le forum Général Python
    Réponses: 2
    Dernier message: 07/04/2008, 09h41
  2. conception d'un appel dynamique aux classes
    Par Choupinou dans le forum Langage
    Réponses: 2
    Dernier message: 19/04/2007, 09h09
  3. [POO] Appels Dynamiques à des classes
    Par Korko Fain dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2006, 09h26
  4. Réponses: 4
    Dernier message: 16/06/2006, 10h49
  5. Réponses: 13
    Dernier message: 15/11/2005, 15h47

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