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 dans 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 car et définissez ses propriétés :
$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";Appelez maintenant 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 aux propriétés de quel objet accéder.
Si tu avais un autre objet car :
$otherCar = new Car();
$otherCar->color = "Blue";
$otherCar->model = "SUV";
$otherCar->describe(); // Je suis un Blue SUVPoint clé : $this fait toujours référence à l’objet spécifique qui a appelé la méthode. Chaque objet dispose de son propre contexte lorsqu’une méthode s’exécute.
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 classeCardans laquelle vous ajouterez la méthodedisplayInfodriver.php: fichier d'exécution principal qui importe et utilise la classeCar(verrouillé)
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
1Fondamentaux de la POO
Fichiers externesIntroduction à la POOClasses et objetsLe mot-clé $thisMéthodesPropriétésConstructeur (__construct)Destructeur (__destruct)Récapitulatif - Calculatrice simple4Héritage
Héritage de baseLe mot-clé parent::Redéfinition des méthodesLe mot-clé finalClasses abstraitesRécapitulatif – Hiérarchie des employés7Encapsulation
Public, Protected, PrivateModificateurs d’accès en profondeurAccesseurs et mutateursDissimulation de l’informationPromotion des constructeurs (8.0)Récapitulatif – Système de fiches étudiant10Concepts avancés de la POO
Composition ou héritageInjection de dépendancesClasses anonymesÉnumérations (PHP 8.1)Fibres (PHP 8.1)Approfondissement du clonage d’objetsGénérateurs et itérateurs13Patrons de conception – Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode modèlePatron ÉtatPatron CompositePatron Dépôt2Espaces de noms et chargement automatique
Introduction aux espaces de nomsLe mot-clé useNorme de chargement automatique PSR-4Autoloader de ComposerRécapitulatif - Projet organisé5Interfaces et contrats
Introduction aux interfacesImplémentation des interfacesImplémentation de plusieurs interfacesInterface ou classe abstraiteIndication de type avec les interfacesRécapitulatif - Calculateur de formes8Méthodes magiques
Introduction aux méthodes magiques__toString et __debugInfo__get, __set, __isset, __unset__call et __callStatic__clone et clonage d’objets__serialize et __unserializeRécapitulatif - Collection personnalisée3Propriétés de classe
Propriétés d’instance vs statiquesConstantes dans les classesMéthodes et propriétés statiquesPropriétés privées et protégéesPropriétés en lecture seule (PHP 8.1)Récapitulatif - Gestionnaire de comptes bancaires6Polymorphisme
Révision de la redéfinition des méthodesPolymorphisme via les interfacesAnnotations de type et types unionLiaison statique tardiveRécapitulatif - Processeur de paiements9Traits
Introduction aux traitsUtilisation de plusieurs traitsRésolution des conflits entre traitsMéthodes abstraites dans les traitsTraits par rapport à l’héritage12Patrons de conception – Partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FactoryPatron ObserverPatron StrategyEntraînez-vous par vous-même : Compilateur PHP en ligne