Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/12/2010, 00h07   #1
Membre confirmé
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : août 2008
Messages : 543
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 25
Localisation : France, Corse (Corse)

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

Informations forums :
Inscription : août 2008
Messages : 543
Points : 255
Points : 255
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 :
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 :

Citation:
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.
Marc22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 00h18   #2
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Code php :
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)
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 00h53   #3
Membre confirmé
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : août 2008
Messages : 543
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 25
Localisation : France, Corse (Corse)

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

Informations forums :
Inscription : août 2008
Messages : 543
Points : 255
Points : 255
Merci Madfrix, c'est vrai pourquoi faire comme en Java quand on peut faire différent.

Bref, on fera avec. bonne soirée
Marc22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h37.


 
 
 
 
Partenaires

Hébergement Web