Les classes PHP
Définition
Les classes en PHP nous permettent de définir un modèle d'objet.
Une définition de classe basique commence par le mot-clé class, suivi du nom de la classe. Suit une paire d'accolades contenant la définition des propriétés et des méthodes appartenant à la classe.
class MaClasse
{
// Définition des propriétés
// Définition des méthodes
}
Une classe peut contenir ses propres constantes, variables (appelées "propriétés" ou "attributs"), et fonctions (appelées "méthodes").
Exemple :
class SimpleClass
{
// déclaration d'une propriété
public $var = 'une valeur par défaut';
// déclaration des méthodes
public function displayVar()
{
echo $this->var;
}
}
$this
La pseudo-variable $this est disponible lorsqu'une méthode est appelée depuis un contexte objet. $this est une référence à l'objet appelant (habituellement, l'objet auquel la méthode appartient, mais ce peut être un autre objet si la méthode est appelée de manière statique depuis le contexte d'un autre objet).
Exemple :
class A
{
function toto()
{
if (isset($this)) {
echo '$this est définie (';
echo get_class($this);
echo ")\n";
} else {
echo "\$this n'est pas définie.\n";
}
}
}
class B
{
function titi()
{
// Note: la ligne suivante émet une erreur si E_STRICT est activé.
A::toto();
}
}
$a = new A();
$a->toto();
// Note: la ligne suivante émet une erreur si E_STRICT est activé.
A::toto();
$b = new B();
$b->titi();
// Note: la ligne suivante émet une erreur si E_STRICT est activé.
B::titi();
L'exemple ci-dessus va afficher :
$this est définie (A)
$this n'est pas définie.
$this est définie (B)
$this n'est pas définie.
new
Pour créer une instance d'une classe, le mot-clé new doit être utilisé.
Une instance d'une classe est la représentation de cette classe, cela nous donne un objet manipulable.
Exemple :
$instance = new SimpleClass();
// Ceci peut également être réalisé avec une variable :
$className = 'SimpleClass';
$instance = new $className(); // new SimpleClass()