Le mot clé this
Partie théorique
En PHP, le mot clé this est une référence à l'objet courant.
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,
thisest 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
$couleurn'existe pas dans la portée de la méthodeafficherCouleur().
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
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 :
- Dans votre répertoire "Documents" créez le répertoire
tp_classe_fichier. - Dans ce répertoire créez le fichier
main.php:<?php
// Utiliser la classe 'Fichier'
print("Utiliser la classe 'Fichier' \n\n"); - Testez le fonctionnement du fichier
main.php:php main.php - Créez une classe
Fichieravec une propriété publique$chemin. - Créez une méthode
setChemin($c)qui assigne une valeur à la propriété$cheminde l'objet. - Créez une méthode
getChemin()qui retourne le chemin du fichier. - Créez une instance de la classe
Fichierappelée :$fichier. - Utilisez la méthode
setChemin()pour définir le chemin du fichiermonFichier.txtprésent dans le dossier personnel de l'utilisateursio:$fichier->setChemin("/home/sio/monFichier.txt"); - Utilisez la méthode
getChemin()pour afficher le chemin du fichier :print($fichier->getChemin()); - 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
Vous devez être connecté pour voir le contenu.