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

PHP & Base de données Discussion :

PHP: class (le getter et le setter)


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut PHP: class (le getter et le setter)
    Bonjour,
    je suis un débitant en programmation orienté objet avec PHP je fais un exercice qui me complique un peu si quelqu'un a l'idée peut m'aider s'il vous plait. Voilà le codes ci-dessous :
    page : classe3.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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?php 
    class client{ 
    private $prenom; 
    private $nom; 
    private $age; 
    public function getPrenom() { 
    return $this−>prenom; 
    } 
    public function getNom() { 
    return $this−>nom; 
    } 
    public function getAge() { 
    return $this−>age; 
    } 
    public function setPrenom($prenom){ 
    if (!preg_match("/^\s*(.+?)\s*$/", $prenom, $champs)) { 
    throw new Exception("Le prénom doit être non vide"); 
    } else { 
    $this->prenom = $champs[1]; 
    } 
    } 
    public function setNom($nom){ 
    if (!preg_match("/^\s*(.+?)\s*$/", $nom, $champs)) { 
    throw new Exception("Le nom doit être non vide"); 
    } else { 
    $this->nom = $champs[1]; 
    } 
    } 
    public function setAge($age){ 
    if (!preg_match("/^\s*(\d+)\s*$/", $age, $champs)) { 
    throw new Exception("L'âge doit être un entier positif ou nul"); 
    } else { 
    $this->age = $champs[1]; 
    } 
    } 
    function __construct($prenom, $nom, $age){ 
    $this−>setPrenom($prenom); 
    $this−>setNom($nom); 
    $this−>setAge($age); 
    } 
    public function toHTML() { 
    return $this−>prenom . " \n " . $this−>nom . " \n " . $this−>age ; 
    } 
     
    } 
    ?>
    page : index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?PHP 
    include("classe3.php"); 
    $merci=new client("CHICCO", "BETUKUTALA", 30); 
    echo $merci->toHTML() ; 
    try { 
    $merci=new client("xxxxx", "yyyyyyy", "gg"); 
    } catch (Exception $e) { 
    print $e->getMessage(); 
    } 
    //fin 
    exit();	
     
    ?>
    NB: mon problème est que lors de l'exécution y a une erreur au niveau de mon constructeur.
    Fatal error: Call to undefined function setPrenom() in D:\Chicco\exercices\classe3.php on line 52
    la ligne 52 c'est la ligne par laquelle j'ai fait la construction donc il arrete ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function __construct($prenom, $nom, $age){ 
    $this−>setPrenom($prenom); 
    $this−>setNom($nom); 
    $this−>setAge($age); 
    }

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Il n'y a peut-être aucun rapport, mais en ajoutant les balises codes sur ton message, on voit un truc bizarre : $this−>setPrenom($prenom); au lieu de $this->setPrenom($prenom);. On dirait que tu utilises un tiret spécial
    Vérifie que c'est juste un problème de copie sur le forum et que ce n'est pas le cas dans ton code réel.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Ça ferait sens. U+2212 est le signe mathématique « moins ». Comme PHP accepte de l’unicode dans ses noms de variables, on a donc une variable nommée $this-, qui est indéfinie mais ce n’est pas une erreur fatale ; le token qui suit étant >, ça transforme l’instruction en une comparaison, puis il y a un appel à la fonction setPrenom() de l’espace global, qui est indéfinie elle aussi. L’appel échoue et c’est une erreur fatale cette fois.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

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