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 :

Faire fonctionner le constructeur d'une classe


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 557
    Par défaut Faire fonctionner le constructeur d'une classe
    Bonsoir,

    si quelqu'un peut m'expliquer pourquoi ce code ultra simple ne marche pas..

    (ps : j'ai jamais codé en POO en php)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class Championnat{
     
    private $_nom;
    private $_pays;
     
    function Championnat($nom, $pays){
    	$this->$_nom=$nom;
    	$this->$_pays=$pays;}}
     
    $championnat_ligue1=new Championnat("Ligue1","France");
    J'obtiens :

    Notice: Undefined variable: _nom in C:\wamp\www\Perso\Perso\sites\php5\test.php on line 12

    Fatal error: Cannot access empty property in C:\wamp\www\Perso\Perso\sites\php5\test.php on line 12
    Au passage si on peut m'expliquer pourquoi si il n'y a qu'un constructeur qui doit être du même nom que la classe, à quoi sert la fonction __construct() ??

    Merci

    edit : c'était à cause du tiret, mais j'espère que vous me répondrez au sujet de la seconde question. Merci.

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class Championnat{
     
    private $_nom;
    private $_pays;
     
    public function __construct($nom, $pays){
    	$this->_nom=$nom;
    	$this->_pays=$pays;
    }
    }
     
     
    $championnat_ligue1 = new Championnat("Ligue1","France");

    Bonjour,

    dans les anciennes versions de php même si ca marche toujours, le constructeur portait le nom de la classe comme en java par exemple. Maintenant, on l'appelle avec __construct() (double underscore)

  3. #3
    Membre éclairé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 557
    Par défaut
    Merci Madfrix, c'est vrai pourquoi faire comme en Java quand on peut faire différent.

    Bref, on fera avec. bonne soirée

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

Discussions similaires

  1. [Débutant] Constructeur d'une classe
    Par chennuo dans le forum Langage
    Réponses: 2
    Dernier message: 10/03/2006, 22h17
  2. Réponses: 2
    Dernier message: 04/12/2005, 21h10
  3. Réponses: 5
    Dernier message: 20/11/2005, 11h15
  4. Réponses: 3
    Dernier message: 06/11/2005, 18h02
  5. comment faire fonctionner l'exe sur une autre machine
    Par brian79 dans le forum C++Builder
    Réponses: 8
    Dernier message: 28/05/2004, 14h00

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