
Introduction
$this est l’une des choses les plus importantes et les plus utiles en PHP OOP (Object Oriented Programming). Et malheureusement, c’est l’une des choses que l’on néglige. Beaucoup de gens ont entendu parler de ce mot-clé mais ne savent pas comment l’utiliser.
Dans cet article, je vous explique brièvement ce qu’est $this et comment il fonctionne. Si vous ne connaissez pas du tout la POO, allez d’abord voir ce dont il s’agit : la suite sera plus claire.
Qu’est-ce que $this et comment fonctionne-t-il ?
Le mot-clé $this nous permet d’utiliser les méthodes et les propriétés de notre classe. Cela signifie que nous pouvons, par exemple, appeler une méthode ou une propriété au sein même de la classe actuelle.
À titre d’exemple, commençons par créer une classe simple appelée Dog. Nous allons utiliser cette classe pour les prochains exemples de notre post.
class Dog {
public $name;
public $age;
}
Ainsi, pour lire une propriété de notre classe, nous utilisons $this comme indiqué ci-dessous :
$this->name
L’exemple ci-dessus montre simplement comment utiliser le mot-clé correctement. Remarquez que le $ disparaît : après la flèche, on écrit name, alors que la propriété est déclarée $name. Retenez-le, sinon vous risquez de chercher longtemps pourquoi votre code ne s’exécute pas correctement.
Le mot-clé $this et les méthodes
Utilisons maintenant $this dans une méthode de notre classe :
class Dog {
public $name;
public $age;
public function intro(){
echo 'Voici ' .$this -> name . ' et il a ' .$this -> age . 'ans.';
}
}
Pour que notre fonction s’exécute, nous devons créer nous-mêmes un objet de la classe, définir les valeurs de ses propriétés, puis appeler la méthode publique :
<?php
// Instancier
$blacky = new Dog();
// Ajouter la propriété name
$blacky->name = 'Toffee';
// Ajouter la propriété age
$blacky->age = '2 months';
Et enfin, nous devons appeler notre fonction.
echo $blacky->intro();
Ce que nous venons de faire, c’est amener les propriétés de la classe dans notre fonction. La sortie ressemblera à ceci :
C’est Toffee et il a 2 mois.
$this permet aussi d’appeler une méthode depuis une autre méthode de la même classe. Voici un exemple rapide, pour lequel nous allons utiliser une nouvelle classe : une de ses méthodes en appelle une autre avec $this.
class Man{
public $name;
public function say(){
echo 'Bonjour ' . $this->name;
}
public function hello(){
$this->say;
}
}
Maintenant, créons notre objet, définissons les valeurs, et renvoyons la fonction.
// Instancier l'objet
$john = new Man();
// Ajouter le nom
$john->name ='john';
// Appeler la méthode hello()
echo $john->hello();
Le résultat devrait être
Bonjour John
Voilà comment utiliser $this dans une méthode pour appeler une autre méthode de la même classe.
Conclusion
Au bout du compte, vous le voyez, c’est assez pratique. Il faut bien sûr un peu de temps pour prendre l’habitude de l’écrire, mais une fois le coup de main pris, vous l’utiliserez 24 heures sur 24, 7 jours sur 7.


