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 :

Instance de classe - Probleme de constructeur [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Points : 1
    Points
    1
    Par défaut Instance de classe - Probleme de constructeur
    Bonjour, je débute en PHP et rencontre un soucis sans pour autant avoir de message d'erreur.

    Plutôt qu'un long discour :

    // MA CLASSE :

    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
    <?php 
     
    class plant {
     
    // attributs 
     
    public $id;
    public $nom;
    public $taille;
    public $variete;
    public $age;
    public $buds;
    public $buds_poid;
    public $croissance;
    public $floraison;
    public $resist_humidite;
    public $resist_maladie;
    public $thc;
     
     
    //methodes
     
     
    public function _construct(string $nom, string $variete, int $croissance, int $floraison, int $res_humide, int $res_malade, int $thc){
     
    $this->nom = $nom;
    $this->variete = $variete;  
    $this->croissance = $croissance;
    $this->floraison = $floraison;
    $this->resist_humidite = $res_humide;
    $this->resist_maladie = $res_malade;
    $this->thc = $thc;
     
    return $this;
    }
    // LA PAGE OU J'INSTANCIE CETTE MEME CLASSE :

    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
     
    <?php
    // AUTOLOAD
     
        function chargerClasse($classname)
        {
            require $classname.'.class.php';
        }
     
        spl_autoload_register('chargerClasse');
     
    include "templates\header.htm";
     
    echo '<a href="index.php">Retour</a>';
     
     
     
    $planto = new plant('poilux', 'Indica', 3 ,3 ,3 ,3 ,3);
     
     
    Echo $planto->nom;
    Echo $planto->variete;
    Echo $planto->thc;
    Echo $planto->floraison;
    Echo $planto->resist_maladie;
    Echo $planto->croissance;
    (J'ai un peu tronqué le tout)

    echo et print ne renvoient rien et J'obtiens une page vide à l'arrivé.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    ton niveau d'erreurs est bien au maximum ? au niveau de la source du rendu HTML ça donne quoi ?

    ps : ton autoloader ne sert pas a grand chose

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    ton niveau d'erreurs est bien au maximum ? au niveau de la source du rendu HTML ça donne quoi ?

    ps : ton autoloader ne sert pas a grand chose
    Je ne sais pas quel niveau d'erreur est parametrer mais je vais y jeter un oeil des que je saurai comment faire, l'autoloader n'a effectivement pas grande importance pour l'instant.

    Niveau rendu HTML j'ai mon header "inclus" et mon lien "retour" vers l'index, c'est tout !

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par nikool Voir le message
    Je ne sais pas quel niveau d'erreur est parametrer mais je vais y jeter un oeil des que je saurai comment faire
    !
    vérifie les valeurs de display_errors et error_reporting, dans ton phpinfo

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    display_errors : ON , error_reporting: 32767 ,

    des conclusions à en tirer ?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par nikool Voir le message
    display_errors : ON , error_reporting: 32767 ,

    des conclusions à en tirer ?
    pas de probleme niveau affichage des erreurs, regarde dans la source HTML,

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    pas de probleme niveau affichage des erreurs, regarde dans la source HTML,
    Je ne suis pas sure de comprendre.

    Je doit regarder dans le fichier *.htm que je passe avec 'include' ?

    il ne contient qu'une image pour l'instant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <html>
     
     
    <center><img src=images/head.png></center>
     
    </html>

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par nikool Voir le message
    echo et print ne renvoient rien et J'obtiens une page vide à l'arrivé.
    c'est la source ce cette page qu'il faut regarder mais montre un peux plus de code, la a par affiche un lien ça fait rien d'autre

  9. #9
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public function _construct(string $nom, string $variete, int $croissance, int $floraison, int $res_humide, int $res_malade, int $thc)
    c'est autorisé cette déclaration ?

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public function _construct(string $nom, string $variete, int $croissance, int $floraison, int $res_humide, int $res_malade, int $thc)
    c'est autorisé cette déclaration ?
    nop, c'est pour ça que ça devrait lui afficher une erreur

  11. #11
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 243
    Points
    20 243
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public function _construct(string $nom, string $variete, int $croissance, int $floraison, int $res_humide, int $res_malade, int $thc)
    c'est autorisé cette déclaration ?
    Non pas de typeHinting sur les types primitifs. De plus le retour de $this est inutile , c'est son boulot au constructeur de renvoyer une instance

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Classe complete :

    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
    47
    48
    49
    50
    <?php 
     
    class plant {
     
    // attributs 
     
    public $id;
    public $nom;
    public $taille;
    public $variete;
    public $age;
    public $buds;
    public $buds_poid;
    public $croissance;
    public $floraison;
    public $resist_humidite;
    public $resist_maladie;
    public $thc;
     
     
    //methodes
     
     
    public function _construct(string $nom, string $variete, int $croissance, int $floraison, int $res_humide, int $res_malade, int $thc){
     
    $this->nom = $nom;
    $this->variete = $variete;  
    $this->croissance = $croissance;
    $this->floraison = $floraison;
    $this->resist_humidite = $res_humide;
    $this->resist_maladie = $res_malade;
    $this->thc = $thc;
     
    return $this;
    }
     
     
    public function croissance($points){
     
     
    }
    public function floraison(){
     
    }
     
    public function recolte(){
     
    }
    }
    ?>
    Index complet :

    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
    <?php
    // AUTOLOAD
     
        function chargerClasse($classname)
        {
            require $classname.'.class.php';
        }
     
        spl_autoload_register('chargerClasse');
     
     
     
    include "templates\header.htm";
     
     
     
    echo '<table>';
    echo '<TD>';
    echo '<a href="detail.php">Voir les pieds</a>';
    echo '</TD>';
    echo '<TD>';
    echo '<a href="boutique.php">Boutique</a>';
    echo '</TD>';
    echo '<TD>';
    echo '<a href="detail.php">Voir les pieds</a>';
    echo '</TD>';
    echo '<TD>';
    echo '<a href="resultat.php">nouvelle plante</a>'; // <-instance de la classe
    echo '</TD>';
    echo '<TD>';
    echo '<a href="detail.php">Voir les pieds</a>';
    echo '</TD>';
    echo '</table>';
     
    ?>
    resultat.php :

    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
    <?php
    // AUTOLOAD
     
        function chargerClasse($classname)
        {
            require $classname.'.class.php';
        }
     
        spl_autoload_register('chargerClasse');
     
    include "templates\header.htm";
     
    echo '<a href="index.php">Retour</a>';
     
     
     
    $planto = new plant('poilux', 'Indica', 3 ,3 ,3 ,3 ,3);
     
     
    print $planto->nom;
    Echo $planto->variete;
    Echo $planto->thc;
    Echo $planto->floraison;
    Echo $planto->resist_maladie;
    Echo $planto->croissance;
     
    ?>
    Merci d'avance.

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    J'ai entre temps virer les 'int' et 'string' de la déclaration du constucteur.

    IDEM

  14. #14
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Peut-être une consommation trop importante


  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Peut-être une consommation trop importante

    j'ai hésité à brouillé les pistes ...

    la je suis au boulot donc le probème ne viens pas de la , je vous l'assure ;-)

  16. #16
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Un constructeur un peu plus propre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public function _construct( $nom, $variete, $croissance,  $floraison, $res_humide, $res_malade,  $thc){
     
    $this->nom = $nom;
    $this->variete = $variete;  
    $this->croissance = $croissance;
    $this->floraison = $floraison;
    $this->resist_humidite = $res_humide;
    $this->resist_maladie = $res_malade;
    $this->thc = $thc;
     
    }

  17. #17
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    __construct et non _construct

  18. #18
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par julp Voir le message
    __construct et non _construct
    ^^ 2__ et non 1_ !

    je l'ignorais ...

  19. #19
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    ça fonctionne !

    un grand merci a tous, i'll be back soon, à n'en pas douter.


    Merci.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public function __construct( $nom, $variete, $croissance,  $floraison, $res_humide, $res_malade,  $thc){
     
    $this->nom = $nom;
    $this->variete = $variete;  
    $this->croissance = $croissance;
    $this->floraison = $floraison;
    $this->resist_humidite = $res_humide;
    $this->resist_maladie = $res_malade;
    $this->thc = $thc;
     
    }

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

Discussions similaires

  1. [debutant] rappel de la classe dans le constructeur
    Par newtito dans le forum Débuter
    Réponses: 6
    Dernier message: 05/10/2005, 00h15
  2. Instance de classes
    Par KymZen dans le forum Tkinter
    Réponses: 9
    Dernier message: 07/04/2005, 08h35
  3. Probleme de constructeur
    Par Invité dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/03/2005, 10h48
  4. Réponses: 13
    Dernier message: 02/02/2005, 00h21
  5. Conditions de destruction des instances de classes
    Par elvivo dans le forum Général Python
    Réponses: 4
    Dernier message: 29/12/2004, 17h16

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