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 :

un tableau dans un objet


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 78
    Par défaut un tableau dans un objet
    Bonsoir tous le monde !

    Voilà j'ai une question bête.
    Je voulais mettre 3 tableaux dans un objet, exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Monobjet { 
        var $tab1 = array ($entite1, $entite2, $entite3);
        var $tab2  = array ($entite1, $entite2, $entite3);
        var $tab3  = array ($entite1, $entite2, $entite3); 
    } 
    $lobjet = new Monobjet();
    J'ai essayé mais php n 'a pas du tous aimé


    en tous cas merci et bonne soirée

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 17
    Par défaut
    Tu peux tout a fait avoir des tableaux dans une classe php

    Je vois plusieurs problèmes ici
    - Supprime les var remplace les par public/protected/private
    - $entite1, $entite2, $entite3 ne sont pas définie => affecter des variable non définie c'est un problème
    Le mieux étant déclarer tes variables a des tableaux vide et de les setter a la volée, ou quand tu déclares l'objet a l'aide du constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Monobjet { 
           private $entite1 = 'toto';
           private $entite2 = 'tata';
           private $entite3 = 'titi';
     
            public $tab1 = array ($this->entite1, $this->entite2, $this->entite3);
     	protected $tab2  = array ($this->entite1, $this->entite2, $this->entite3);
     	private $tab3  = array ($this->entite1, $this->entite2, $this->entite3); 
     
     } 
     
    $lobjet = new Monobjet();

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 78
    Par défaut
    ha d'accord j'ai compris !!!

    En faite je me suis planté dans la déclaration.

    J'ai fait un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public $tab1 = array ($entite1, $entite2, $entite3);
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public $tab1 = array ($this->entite1, $this->entite2, $this->entite3);
    Par contre j'ai pas mis mais mes $entites étais bien définies.


    merci je vais refaire mon code pour faire joujou avec l'objet

    et bonne soirée


    desolé juste une question en passant?

    Si je veux trimbaler mon objet sur toutes mes pages ?
    J'ai le droit de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $lobjet = new Monobjet();
    $GLOBALS["lobjet"]
    merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 17
    Par défaut
    Au niveau des bonnes pratiques, les globals sont juste a eviter, c'est une source de problemes, de bug, de failles de securité, dès que ton code devient un poil plus complexe. De plus cela ne correspond pas a ton besoin, global ne veut pas dire persistance.
    Mais si tu veux absolument conserver le meme object sur plusieurs pages... PHP a les sessions, tu peux mettres ton objet en session et tu pourras le recuperer sur differentes pages

    Par contre, pour conserver les objets, PHP serialize les variables coté serveurs pour les conserver, les ecrit sur le file system, a la demande de la deuxieme page, il lit la variable depuis le filesystem, la deserialize et la fournit a ton code applicatif, en clair, c'est un mécanisme couteux dont il faut avoir conscience, évite de mettre un objet qui est un tableau de 1 000 element en session, sinon ton serveur risque ne vas pas aimer du tout.

  5. #5
    Membre très actif Avatar de demenvil
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste développeur
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Salut !
    Il y a d'autre solution si tu veux, peut être qu'elle te seront plus familières

    Par exemple :
    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
     
    <?php
    class MaClass {
     
        public $monObjet1,
                $monObjet2,
                $monObjet2;
     
        //Soit par un controler ==> Ou tu IMPOSES un ou des ARRAY
        /**
         * 
         * @param type $monObjet1
         * @param type $monObjet2
         * @param type $monObjet3
         */
        public function __construct($monObjet1 = array(), $monObjet2 = array(), $monObjet3 = array()) {
            //Puis un petit
            $this->monObjet1 = $monObjet1;
            //etc..
            /*
             * Ou par un Setter générique
             */
            $this->set('monObjet1', $monObjet1)
                    ->set('monObjet2', $monObjet2)
                    ->set('monObjet3', $monObjet3);
            //Ou alors
            $this->set('monObjet1', $monObjet1);
            $this->set('monObjet2', $monObjet2);
            $this->set('monObjet3', $monObjet3);
        }
     
        //Mon SETTER
        /**
         * 
         * @param type $attribute
         * @param type $str
         * @return \MaClass
         */
        public function set($attribute, $str) {
            $this->$attribute = $str;
            return $this;
        }
     
    }
    ?>
    Une méthode comme une autre, mais tu peux aussi du coup juste déclarer ton objet et instancier ta class. Puis passer par des méthode tierce pour travailler avec.

    Ensuite pour conserver ton objet sur plusieurs pages, oui sérialize les.
    Après si tu dois utiliser plusieurs class dans une essaye de passer par un héritage fonctionnel (mettre en place un multi-héritage en php).

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 78
    Par défaut
    Merci c est très clair.

    Bonne journée à toi est à plus

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

Discussions similaires

  1. [XL-2007] Insérer un tableau dans un objet sur une feuille de calcul
    Par Denis_67 dans le forum Excel
    Réponses: 5
    Dernier message: 27/11/2013, 08h23
  2. Affichage résultats tableau dans un objet
    Par neoboy dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/04/2010, 21h13
  3. Tableau dans un objet
    Par sokai dans le forum C#
    Réponses: 4
    Dernier message: 30/10/2008, 14h02
  4. Tableau dans un objet
    Par sokai dans le forum C#
    Réponses: 0
    Dernier message: 30/10/2008, 10h54
  5. Accès à un tableau dans un objet.
    Par psic dans le forum Langage
    Réponses: 9
    Dernier message: 28/08/2008, 14h30

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