Le mot-clé $this
Fait partie de la section Programmation Orientée Objet du Journey PHP de Coddy — leçon 4 sur 91.
Le mot-clé $this fait référence à l'instance actuelle d'une classe à l'intérieur de ses méthodes. Il vous permet d'accéder aux propriétés de l'objet actuel et de les modifier.
Voici un exemple de classe avec des méthodes utilisant $this :
<?php
class Car {
public $color;
public $model;
public function honk() {
echo "Beep beep!\n";
}
public function describe() {
echo "I am a " . $this->color . " " . $this->model . "\n";
}
}Le mot-clé $this est utilisé à l'intérieur des méthodes pour faire référence à l'objet qui a appelé la méthode.
Créez un objet voiture et définissez ses propriétés :
$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";Maintenant, appelez les méthodes :
$myCar->honk();
$myCar->describe();Sortie :
Beep beep!
I am a Red SedanLorsque vous appelez $myCar->describe(), PHP définit automatiquement $this pour faire référence à $myCar. C'est ainsi que la méthode sait à quelles propriétés d'objet accéder.
Si vous aviez un autre objet voiture :
$otherCar = new Car();
$otherCar->color = "Blue";
$otherCar->model = "SUV";
$otherCar->describe(); // Je suis une Blue SUVPoint clé : $this fait toujours référence à l'objet spécifique qui a appelé la méthode. Chaque objet obtient son propre contexte lorsqu'une méthode est exécutée.
Défi
FacileComplétez la classe Car dans car.php en ajoutant une méthode appelée displayInfo qui utilise le mot-clé $this pour afficher l'année, la marque et le modèle de la voiture au format :
"This car is a [year] [make] [model]"
car.php: Contient la définition de la classeCaroù vous ajouterez la méthodedisplayInfodriver.php: Fichier d'exécution principal qui importe et utilise la classeCar(verrouillé)
Aide-mémoire
Le mot-clé $this fait référence à l'instance actuelle d'une classe au sein de ses méthodes, vous permettant d'accéder et de modifier les propriétés de l'objet actuel.
Utilisation de $this dans une classe :
<?php
class Car {
public $color;
public $model;
public function describe() {
echo "I am a " . $this->color . " " . $this->model . "\n";
}
}Création d'un objet et appel de méthodes :
$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";
$myCar->describe(); // I am a Red SedanLorsque vous appelez $myCar->describe(), PHP définit automatiquement $this pour qu'il se réfère à $myCar. Chaque objet possède son propre contexte lorsqu'une méthode est exécutée, ainsi $this se réfère toujours à l'objet spécifique qui a appelé la méthode.
Essayez vous-même
<?php
require_once 'car.php';
$myCar = new Car();
$myCar->year = 2020;
$myCar->make = "Toyota";
$myCar->model = "Corolla";
$myCar->displayInfo();
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Programmation Orientée Objet
1Les bases de la POO
Fichiers externesIntroduction à la POOClasses vs ObjetsLe mot-clé $thisMéthodesPropriétésConstructeur (__construct)Destructeur (__destruct)Récapitulatif - Calculatrice simple4Héritage
Héritage de baseLe mot-clé parent::Redéfinition de méthodeLe mot-clé finalClasses abstraitesRécapitulatif - Hiérarchie des employés7Encapsulation
Public, Protégé, PrivéModificateurs d'accès en détailGetters et SettersMasquage d'informationPromotion de constructeur (8.0)Récapitulatif - Système de gestion d'étudiants10Concepts avancés de la POO
Composition vs HéritageInjection de dépendancesClasses anonymesÉnumérations (PHP 8.1)Fibers (PHP 8.1)Clonage d'objets : analyse approfondieGénérateurs et Itérateurs13Patrons de conception Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode ModèlePatron ÉtatPatron CompositePatron Repository2Espaces de noms et Autoloading
Introduction aux espaces de nomsLe mot-clé useStandard d'Autoloading PSR-4L'Autoloader ComposerRécapitulatif - Projet organisé5Interfaces et Contrats
Introduction aux InterfacesImplémentation d'InterfacesImplémentation d'Interfaces MultiplesInterface vs Classe AbstraiteType Hinting avec les InterfacesRécapitulatif - Calculateur de Formes8Méthodes magiques
Introduction aux méthodes magiques__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Clonage d'objets__serialize & __unserializeRécapitulatif - Collection personnalisée3Propriétés de classe
Propriétés d'instance vs Propriétés statiquesConstantes dans les classesMéthodes et propriétés statiquesPropriétés privées et protégéesPropriétés readonly (PHP 8.1)Récapitulatif - Gestionnaire de compte bancaire6Polymorphisme
Retour sur la redéfinition de méthodePolymorphisme via les interfacesType Hinting et Types d'unionLiaison statique tardiveRécapitulatif - Processeur de paiement9Traits
Introduction aux TraitsUtilisation de plusieurs TraitsRésolution des conflits de TraitsMéthodes abstraites dans les TraitsTraits vs Héritage12Patrons de conception Partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FabriquePatron ObservateurPatron Stratégie