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] [Classee/Objet]Syntaxe, méthode en POO correcte ?


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 3
    Points : 3
    Points
    3
    Par défaut [POO] [Classee/Objet]Syntaxe, méthode en POO correcte ?
    salut,

    Je précise avant qu'on me reproche de tester avant de poster que :

    1-Je suis actuellement sur un pc sur lequel je n'ai pas les droits suffisant pour installer un environnement. J'écris donc le code dans le bloc note.
    2-Je ne demande pas qu'on fasse les tests à ma place, juste qu'on me signale des erreurs qui paraitraient flagrante.

    --Fichier data_layer.php4
    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
     
    <?php 
      class DataClass { 
        var $strNom; 
        var $strPrenom; 
     
        function DataClass(){} 
     
        function setNom($val) {$this->strNom = $val;} 
        function setPrenom($val){$this->strPrenom=$val;} 
     
        function getNom() {return $this->strNom;} 
        function getPrenom() {return $this->strPrenom;} 
    } 
    ?>
    --fichier treatment_layer.php4
    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
     
    <?php 
    include(data_layer.php4);
     
    function loadData() 
    { 
        $sql = "SELECT NOM,PRENOM FROM MATABLE"; 
        $res = mysql_query($sql); 
        if (!$res) {die('Requête invalide : ' . mysql_error() . "\n");} 
        $i=0; 
        while ($row = mysql_fetch_array($res))  
        { 
            $tabData[$i]=new DataClass; 
            $tabData [$i]->setNom($row['NOM']); 
            $tabData [$i]->setPrenom($row['PRENOM']); 
            $i=$i+1; 
        } 
     
        mysql_free_result($res); 
        /////////////////*Je m'interroge surtout si la fonction test() va bien récuperer 
    le tableau d'objets, comme je le souhaiterais*////////////////////
        return $tabData;
    }
    
    function test() 
    { 
        /////////////////////*
        Est ce que jpeux réellement récupérer le tableau d'objet comme ceci ?
       */////////////////
        $obj=loadData();
     
       //////////////*et à fortiori, l'usage de count marchera t-il dans ce cas?*///////////
        for($a=0; $a < count($obj);$a++) 
        { 
            echo $obj[$a]->getNom(); 
            echo "<br>"; 
            echo $obj[$a]->getPrenom(); 
            echo "<br>"; 
         } 
    }
    ?>
    Voilà, donc si quelqu'un voit des erreurs dans ma méthode qui fausserait le fonctionnement, jsuis preneur. Perso jvois pas pourquoi ca marcherait pas, c'est pourquoi je demande...

  2. #2
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    J'allais dire qu'il n'y avait pas d'erreur mais j'ai qd mm trouvé un truc à dire

    Dans la fonction loadData tu n'initialise pas $tabData.

    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
    function loadData() 
    { 
        //Ici tu devrais initialiser $tabData
        $tabData = array();
     
        $sql = "SELECT NOM,PRENOM FROM MATABLE"; 
        $res = mysql_query($sql); 
        if (!$res) {die('Requête invalide : ' . mysql_error() . "\n");} 
        $i=0; 
        while ($row = mysql_fetch_array($res))  
        { 
            $tabData[$i]=new DataClass; 
            $tabData [$i]->setNom($row['NOM']); 
            $tabData [$i]->setPrenom($row['PRENOM']); 
            $i=$i+1; 
        }
    Mais bon c'est qu'un petit oubli.

    bye

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    merci pour ta réponse :
    et je suppose que jdois aussi initialiser $obj dans la fonction test(), comme tu là corriger dans loadData

  4. #4
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    non la ce n'est pas necessaire.

  5. #5
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    salut,
    si tu met un constructeur vide, autant ne pas le mettre, il sert a rien et ça ne t'empechera pas de faire un new

    Ensuite,
    je te conseille de mettre =& pour récupérer une référence, ca te chargera moins la mémoire, enfin c est plus une habitude a pendre quand tu manipule plus d'objets (en php5 ce n'est plus nécessaire ça se fait tout seul)

Discussions similaires

  1. [POO] [Classe/Objet] Conseils à un débutant en POO
    Par nicocolt dans le forum Langage
    Réponses: 9
    Dernier message: 08/03/2006, 10h06
  2. Réponses: 13
    Dernier message: 15/11/2005, 15h47
  3. [POO] langage objet et php.
    Par FFF dans le forum Langage
    Réponses: 15
    Dernier message: 09/11/2005, 18h36
  4. [POO] Modèle objet: this inutilisable dans certains cas?
    Par vlord dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 13/08/2005, 10h41
  5. Réponses: 3
    Dernier message: 19/05/2005, 10h46

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