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 :

[Tableaux] Déclaration d'un tableau dans une classe


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Février 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 35
    Points : 20
    Points
    20
    Par défaut [Tableaux] Déclaration d'un tableau dans une classe
    Bonjour,

    j'ai créé une classe et j'ai declaré un tableau comme suit :
    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
     
    class meta
    {
        public static $tpl;         //Objet pour gerer la gestion des templates
        public static $menu;        //Objet pour gerer les menus
        public static $param;       //Objet pour gerer les parametres
        public static $config = array('bd_user'      => $username, 
                                               'bd_pass'      => $password,
                                               'bd_host'      => $hostspec,
                                               'ad_serveur'   => $gst_serveur_AD,
                                               'ad_port'      => $gi_port_AD,
                                               'ad_login'     => $gst_ident_AD,
                                               'ad_passwd'    => $gst_mdp_AD,
                                               'ldap_serveur' => $gst_serveur_NDS,
                                               'ldap_port'    => $gi_port_NDS,
                                               'ldap_login'   => $gst_ident_NDS,
                                               'ldap_passwd'  => $gst_mdp_NDS);
     
        function xxxx(){}
    }
    et je remplis le tableau avec des valeur recuperer dans un fichier de configuration.

    Mais quand je crée l'objet de la classe j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected T_VARIABLE
    merci d'avance pour votre aide car je ne voit pas trop d'ou vient l'erreur sauf peut etre de ma declaration.

  2. #2
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Tu ne peux pas faire
    tout simplement. Si tu veux assigner des variables, fait le via le constructeur plutôt.

    @+

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Il y a une erreur au niveau de la déclaration de $config, je ne sais absolument pas pourquoi, mais mon éditeur me le dit.

    Donc je contournerais le problème ainsi

    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
    41
    42
    43
    44
    45
    46
     
    class meta
    {
        public static $tpl;         //Objet pour gerer la gestion des templates
        public static $menu;        //Objet pour gerer les menus
        public static $param;       //Objet pour gerer les parametres
     
        private static $config;
     
        private function set_config($attr)
        {
        	return $this->config = $attr;
        }
     
        public function get_config()
        {
        	return $this->config;
        }
     
        function __construct()
        {
        	$config = array('bd_user'      => $username,
                                               'bd_pass'      => $password,
                                               'bd_host'      => $hostspec,
                                               'ad_serveur'   => $gst_serveur_AD,
                                               'ad_port'      => $gi_port_AD,
                                               'ad_login'     => $gst_ident_AD,
                                               'ad_passwd'    => $gst_mdp_AD,
                                               'ldap_serveur' => $gst_serveur_NDS,
                                               'ldap_port'    => $gi_port_NDS,
                                               'ldap_login'   => $gst_ident_NDS,
                                               'ldap_passwd'  => $gst_mdp_NDS);
     
     
        	$this->set_config($config);
        }
     
     
     
     
     
     
     
     
        function xxxx(){}
    }
    Une fois la classe instancié , je ferais appel à la méthode get_config() pour avoir mon tableau.

    Mais si quelqu'un trouve pq il y a une erreur je preneur aussi

  4. #4
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Il faut penser a globaliser les variables, ou a les passer en paramètre aussi.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    hello,

    question bete pour commencer, ton interpreteur c'est php5 ?

    ensuite tu t'emmeles les pinceaux avec les statiques.

    lorsque tu déclare une variable en statique, tu la lie à la classe, et non à l'instance. du coup l'affecter par le biais de $this->variable n'a aucun sens et doit te générer une erreur. si tu déclare une variable statique, tu l'affecte par self::$variable, et toutes tes instances la partageront. donc à toi de voir si c'est le but recherché.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/01/2008, 13h59
  2. [Tableaux] Gestion tableau dans une classe
    Par lolodev dans le forum Langage
    Réponses: 5
    Dernier message: 06/08/2007, 13h19
  3. Réponses: 1
    Dernier message: 17/04/2007, 22h07
  4. Comment définir un tableau dans une classe?
    Par Pragmateek dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 30/04/2006, 20h34
  5. tableau dans une classe
    Par blastmanu dans le forum C++
    Réponses: 6
    Dernier message: 18/04/2006, 14h18

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