Qu’est-ce que le mot-clé $this et comment l’utiliser en PHP ?

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 vais vous expliquer brièvement ce qu’est le $this

Qu’est-ce que le mot-clé $this et comment l’utiliser en PHP ?

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.

php
class Dog {

    public $name;
    public $age;
}

Ainsi, pour lire une propriété de notre classe, nous utilisons $this comme indiqué ci-dessous :

php
$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 :

php
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
<?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.

php
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.

php
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.

php
// 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.

PHP

Damien Flandrin Développeur web depuis 2010, créateur de Gekkode et d’Email Impact. Chaque article est testé sur un projet réel avant publication. Contact
Newsletter

Les nouveaux tests, tutoriels et projets, par e-mail.

Tests reproductibles, code versionné, résultats datés. Jamais de spam.