6.Le langage PHP
6.8.Programmation orientée objet
6.8.4.Implémentation d'une classe ou interface
6.8.4.5.Le constructeur
Le constructeur c'est la méthode qui est appelée lorsque l'on instancie un objet (avec l'instruction
new). En PHP, le constructeur est une méthode qui doit s'appeler
__construct().
<?php
class MaClasseAMoi
{
public function __construct()
{
echo 'Ca y est je suis prêt';
}
}
Le code suivant, instanciera un objet de la classe MaClasseAMoi en appelant la méthode __construct (qui selon l'exemple affichera au passsage "Ca y est je suis prêt").
<?php
$objet = new MaClasseAMoi(); // Instancie en appelant la méthode __construct
|
- En cas d'héritage et de redéfinition du constructeur, le constructeur de la classe mère n'est pas automatiquement appelé
|
6.8.4.6.Les variables membres et les constantes de classe
Les variables membres d'une classe peuvent être déclarées en indiquant en début de classe la visibilité de la variable (publique
public, protégée
protected ou privée
private) suivi du nom de la variable.
<?php
class MaClasseAMoi
{
public $variableMembrePublique; // Peut être appelée dans tout contexte
protected $variableMembreProtegee; // Ne peut être appelée qu'au sein de la classe ou classe fille
private $variableMembrePrivee; // Ne peut être appelée qu'au sein de la classe
// corps de la classe
}
Les constantes se déclarent avec le mot clé
const
<?php
class MaClasseAMoi
{
const MA_CONSTANTE_DE_CLASSE = 'constante';
}
Il est tout à fait possible de définir une constante dans la déclaration d'une interface
<?php
interface MonInterface
{
const MA_CONSTANTE_DE_CLASSE = 'constante';
}
Il est possible de faire référence à cette constante via la notation nom de la classe + ':' + nom de la constante.
<?php
echo MaClasseAMoi::MA_CONSTANTE_DE_CLASSE;
6.8.4.7.$this, self et parent
Au sein d'une classe, il est possible de faire appel à une variable et deux mots clés au rôle un peu particulier.
$this fait référence à l'objet lui même (il ne peut être utilisé dans une méthode statique).
self fait référence à la classe elle même (il peut être utilisé dans une méthode statique).
parent fait référence à la classe mère (il peut être utilisé dans une méthode statique).
<?php
class MaClasseAMoi extends MaClasseMere
{
protected $maVariable;
public static $maVariableStatique;
const MA_CONSTANTE_DE_CLASSE = 'constante';
public function __construct($param)
{
// Appel au constructeur de la classe mère
parent::__construct($param);
// Affectation de la variable membre
$this->maVariable = $param;
}
public static function methodeStatique1($param)
{
// Affectation de la variable statique (donc valeur partagée entre
// tous les objets de cette classe)
self::$maVariableStatique = $param;
// Appel à la constante de classe MA_CONSTANTE_DE_CLASSE
// et à l'implémentation par la classe mère de methode1()
return self::MA_CONSTANTE_DE_CLASSE.' '.
parent::methodeStatique1($param);
}
public static function methodeStatique2()
{
// Appel à une méthode statique de la classe
return self::methodeStatique1('phpfacile');
}
public function methode3()
{
// Appel à une variable membre (non statique)
return $this->maVariable;
}
public function methode4()
{
// Appel à une méthode de la classe (non statique)
return $this->methode3();
}
}