Chaque méthode, incluant le constructeur, reçoit un paramètre caché. Ce paramètre n'est précisé à nulle part mais il est bel et bien reçu par la méthode. Il s'agit d'une référence à l'objet sur lequel la méthode doit travailler.
Cette référence d'objet s'appelle $this.
Par exemple, lorsqu'une méthode initialise une propriété, PHP doit savoir dans quelle case mémoire la valeur doit être stockée. Est-ce que c’est dans la case mémoire de la propriété de l'objet X ou dans celle de l'objet Y ? Le paramètre caché $this indique qu'il faut utiliser la propriété de l'objet qui figure devant l'appel de la méthode.
Ex :
$monObjet->MaMethode($valeur);
class MaClasse
{
private $maPropriete;
// ...
public function MaMethode($maPropriete) {
$this->maPropriete = $maPropriete;
}
}
Le mot-clé $this devra également être utilisé devant l'appel d'une méthode de la même classe.
class MaClasse
{
// ...
public function MaMethode($maPropriete) {
$this->maPropriete = $maPropriete;
$this->AutreMethode();
}
public function AutreMethode() {
// ...
}
}
Il existe un autre paramètre caché qui s'appelle self.
Alors que $this fait référence à l'objet courant, self fait référence à la classe.
On utilisera self pour accéder à des membres statiques de la classe. Notez qu'avec self, on troquera la flèche (->) par deux fois les deux points (::).
class MaClasse
{
// ...
public static $maVariableStatique;
public function MaValuer() {
return self::$maVariableStatique;
}
}
▼Publicité