je m'essaie suis je sur la bonne voie

Eléphanteau du PHP | 30 Messages

24 mai 2009, 19:10

<?php

class Client {

    private $nom;
    private  $prenom;
    private  $adresse;
    private  $code_postal;
    private  $tel_fixe;
    private  $tel_mobile;
    private  $date_Inscription;
    

    public function _construct($nom,$prenom,$adresse,$code_postal,$tel_fixe,$tel_mobile,$date_inscription)
    {
      $this->nom=$nom;
      $this->prenom=$prenom;
      $this->adresse=$adresse;
      $this->
      
    }
}

voilà un extrait de mon code je voudrais savoir si je suis sur la bonne voie, je sais que par le suite il ya lla mise en place de getters et setters mais j'avoue que le demarrage me parait complique , j'ai trouvé pleinn d'exemple et rien qui ne ressemble au mien ce qui me fait poser cette question.
Merci.

J'ai fait du java mais il ya longtemps et il me semble que l'on faisais comme ça.
Vous me dirais commence par tout mettre en public mais bon pour l'instant ce n'est pas ce que je veux comprendre.

ViPHP
AB
ViPHP | 5818 Messages

24 mai 2009, 23:02

Finalement ta fonction construct est un setter...

Eléphanteau du PHP | 30 Messages

25 mai 2009, 10:44

Merci mais c'est un lien publicitaire ? !

ViPHP
AB
ViPHP | 5818 Messages

25 mai 2009, 12:32

Ah bah effectivement le lien au pied du post est un lien vers mon site (comme sur tous mes autres post). Le trait de séparation indique la fin du message :wink:

Tu voulais un lien vers la poo ? Bah il y en a tellement pour peu que tu rentre "POO php" dans google... mais pour moi aucun n'est véritablement une référence quand on commence.
Tu peux aller faire un tour sur le siteduzero.com mais je ne retrouve plus le tuto, il y a aussi http://www.vulgarisation-informatique.com/php-poo.php peut-être aussi sur commentcamarche.net, et devellopez.com mais qui n'est pas très adapté aux débutants.

Mais bon je n'ai rien de progressif et suffisamment complet sous la main pour donner une recommandation particulière.

Eléphanteau du PHP | 30 Messages

25 mai 2009, 14:56

voilà j'ai réduit le code au plus simple dans un premier temps je pense que c'est mieux mais le problème c'est que ça marche tout de même pas:
<?php
  class eleve {
    public $nom;
    public $prenom;
    public $adresse;
    
    function _tostring(){
    }
    
    function _construct($nom,$prenom,$adresse){
      $this->nom=$nom;
      $this->prenom=$prenom;
      $this->adresse=$adresse;
    }
  
    function manger() {
      echo"$this->nom a manger du pain toute la journée";
    }
  }
  
$yves = new eleve;
$yves->manger();
?>
Ce morceau de code devrait bien me renvoyer 'yves a manger du pain toute la journée'
non ?
j'instancie la classe.
j'appel la methode manger.

Alors je ne comprends pas tout

Eléphant du PHP | 396 Messages

25 mai 2009, 15:16

Code : Tout sélectionner

function _construct($nom,$prenom,$adresse)
Ton contructeur attend des paramètres. Où sont-ils? ;)

Eléphanteau du PHP | 30 Messages

25 mai 2009, 16:04

ok il y a 3 paramètre je viens de le voir mais je pensais que
$this->nom=$nom;
$this->prenom=$prenom;
$this->adresse=$adresse; 
correspondais justement à ces trois paramètre
Comment faut il le formuler alors, j'ai toujours cru que lorsque l'on donnais des paramètres, on les mettaient à la suite de construct sous la forme $this->x=$variable.

Eléphant du PHP | 396 Messages

25 mai 2009, 16:08

Code : Tout sélectionner

function _construct($nom,$prenom,$adresse){ $this->nom=$nom; $this->prenom=$prenom; $this->adresse=$adresse; }
Ici ton contructeur attend les 3 paramètres qui permettent de "renseigner" les 3 propriétés nom, prenom et adresse.

Il faut donc que tu fasses

Code : Tout sélectionner

$yves = new eleve("Dupond","Yves","Paris"); $yves->manger();

ViPHP
AB
ViPHP | 5818 Messages

25 mai 2009, 16:10

Et puis le constructeur s'écrit __construct et non pas _construct.

Et si tu veux ne pas avoir à passer tous les paramètres à une fonction il faut définir des valeurs par défaut. Cela dit comme te l'a fait remarquer Rei Itchido, tu n'en avais passé aucun.

En gardant la structure de ton code tu pourrais écrire
class eleve {
    private $nom;
    private $prenom;
    private $adresse;
        
    public function __construct($nom=null,$prenom=null,$adresse=null){
      $this->nom=$nom;
      $this->prenom=$prenom;
      $this->adresse=$adresse;
    }
  
    public function manger() {
      echo $this->nom.' a mangé du pain toute la journée';
    }
  }
  
$Eleve = new eleve('Yves');
$Eleve->manger(); 
Le lien que je t'ai donné plus haut te donne quelques exemples.

Eléphanteau du PHP | 30 Messages

25 mai 2009, 16:18

ah ok j'ai compris ou il attends les paramètres
Ganesha je te remercie
c'est dur au début de repérer tous ça. On s'y perds facilement et on comprends pas toujours ce que l'on nous raconte

Mieux vaut passer pour un âne que de l'être en faisant croire que l'on est surdoué

Merci de ton aide

ViPHP
ViPHP | 3300 Messages

25 mai 2009, 19:56

pour la poo rien ne vaut

www.php.net/php5

tu as la référence de ce qu'on peut faire, et pourquoi
Fait du php depuis que ca existe ou presque :)