Aller au contenu principal

Le mot clé this

Partie théorique

En PHP, le mot clé this est une référence à l'objet courant.

attention

this n'est pas une variable, c'est une pseudo-variable, vous ne pouvez pas lui assigner une valeur.

Dans le contexte d'une méthode, this est une référence à l'objet sur lequel la méthode a été appelée.

On utilise le mot clé this pour accéder aux propriétés et méthodes de l'objet courant.

Exemple pratique

Regardons un exemple simple pour comprendre comment this fonctionne en PHP :

Je souhaite afficher la couleur dans la méthode :

class Voiture {
public $couleur = "rouge";

public function afficherCouleur() {
print($couleur);
}
}

$maVoiture = new Voiture();
$maVoiture->afficherCouleur(); // Erreur

Ce code génère une erreur, car la variable $couleur n'existe pas dans la portée de la méthode afficherCouleur().

Donc, pour accéder aux propriétés de la classe, je vais utiliser le mot clé $this :

class Voiture {
public $couleur = "rouge";

public function afficherCouleur() {
print($this->couleur);
}
}

$maVoiture = new Voiture();
$maVoiture->afficherCouleur(); // Affiche : rouge

Dans cet exemple, $this est utilisé pour accéder à la propriété $couleur de l'instance de la classe Voiture.

Test de mémorisation/compréhension


Qu'est-ce que le mot clé `this` en PHP ?


Peut-on assigner une valeur à `this` en PHP ?



TP pour réfléchir et résoudre des problèmes

Objectif du TP : Créer une classe Fichier qui utilise le mot clé this pour manipuler les propriétés de l'objet.

Consignes :

  1. Dans votre répertoire "Documents" créez le répertoire tp_classe_fichier.
  2. Dans ce répertoire créez le fichier main.php :
    <?php
    // Utiliser la classe 'Fichier'
    print("Utiliser la classe 'Fichier' \n\n");
  3. Testez le fonctionnement du fichier main.php :
    php main.php

  4. Créez une classe Fichier avec une propriété publique $chemin.
  5. Créez une méthode setChemin($c) qui assigne une valeur à la propriété $chemin de l'objet.
  6. Créez une méthode getChemin() qui retourne le chemin du fichier.
  7. Créez une instance de la classe Fichier appelée : $fichier.
  8. Utilisez la méthode setChemin() pour définir le chemin du fichier monFichier.txt présent dans le dossier personnel de l'utilisateur sio:
    $fichier->setChemin("/home/sio/monFichier.txt");
  9. Utilisez la méthode getChemin() pour afficher le chemin du fichier :
    print($fichier->getChemin());
  10. Lancez l'exécution du fichier main.php :
    php main.php   

Si tout va bien, l'exécution du fichier main.php va afficher :

Utiliser la classe 'Fichier'

/home/sio/monFichier.txt
Une solution