Page 1 sur 1

je m'essaie suis je sur la bonne voie

Posté : 24 mai 2009, 19:10
par hannao
<?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.

Posté : 24 mai 2009, 23:02
par AB
Finalement ta fonction construct est un setter...

Posté : 25 mai 2009, 10:44
par hannao
Merci mais c'est un lien publicitaire ? !

Posté : 25 mai 2009, 12:32
par AB
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.

Posté : 25 mai 2009, 14:56
par hannao
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

Posté : 25 mai 2009, 15:16
par Rei Itchido

Code : Tout sélectionner

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

Posté : 25 mai 2009, 16:04
par hannao
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.

Posté : 25 mai 2009, 16:08
par Rei Itchido

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();

Posté : 25 mai 2009, 16:10
par AB
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.

Posté : 25 mai 2009, 16:18
par hannao
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

Posté : 25 mai 2009, 19:56
par Nagol
pour la poo rien ne vaut

www.php.net/php5

tu as la référence de ce qu'on peut faire, et pourquoi