Propriétés
Fait partie de la section Programmation Orientée Objet du Journey PHP de Coddy — leçon 6 sur 91.
Les propriétés sont des variables qui appartiennent à une classe. Elles stockent des informations sur l'état de l'objet. En PHP, les propriétés doivent être déclarées à l'intérieur de la classe en utilisant un mot-clé de visibilité comme public.
Les propriétés peuvent avoir des valeurs par défaut qui sont partagées par tous les objets :
<?php
class Student {
public $school = "PHP Academy"; // valeur par défaut
public $name;
public $age;
}Les propriétés sans valeur par défaut valent initialement null jusqu'à ce que vous les définissiez.
Vous pouvez définir les valeurs des propriétés à l'aide d'une méthode et $this :
class Student {
public $school = "PHP Academy";
public $name;
public $age;
public function setInfo($name, $age) {
$this->name = $name; // définir les données de l'instance
$this->age = $age; // définir les données de l'instance
}
}Créez des objets étudiants et définissez leurs données individuelles :
$student1 = new Student();
$student2 = new Student();
$student1->setInfo("Alice", 20);
$student2->setInfo("Bob", 22);Accédez aux propriétés :
echo $student1->name . "\n"; // Alice
echo $student2->name . "\n"; // Bob
echo $student1->school . "\n"; // PHP Academy
echo $student2->school . "\n"; // PHP AcademySortie :
Alice
Bob
PHP Academy
PHP AcademyDifférence clé : Les propriétés avec des valeurs par défaut (comme $school) commencent avec la même valeur pour chaque objet. Les propriétés définies via des méthodes (comme $name et $age) sont uniques à chaque objet.
Défi
FacileComplétez la classe Student dans student.php :
- Déclarez une propriété
$schoolavec la valeur par défaut"PHP Academy" - Déclarez les propriétés
$nameet$age(pas de valeurs par défaut) - Ajoutez une méthode
setInfoqui prend les paramètres$nameet$ageet les définit en utilisant$this
Le fichier driver.php testera votre classe en créant deux étudiants et en affichant leurs informations.
Aide-mémoire
Les propriétés sont des variables qui appartiennent à une classe et stockent des informations sur l'état de l'objet. Elles doivent être déclarées à l'intérieur de la classe en utilisant un mot-clé de visibilité comme public.
Les propriétés peuvent avoir des valeurs par défaut partagées par tous les objets :
<?php
class Student {
public $school = "PHP Academy"; // valeur par défaut
public $name;
public $age;
}Les propriétés sans valeur par défaut commencent par null jusqu'à ce qu'elles soient définies.
Utilisez des méthodes et $this pour définir les valeurs des propriétés :
class Student {
public $school = "PHP Academy";
public $name;
public $age;
public function setInfo($name, $age) {
$this->name = $name;
$this->age = $age;
}
}Créez des objets et définissez des données individuelles :
$student1 = new Student();
$student1->setInfo("Alice", 20);
echo $student1->name; // Alice
echo $student1->school; // PHP AcademyLes propriétés avec des valeurs par défaut commencent de la même manière pour chaque objet. Les propriétés définies via des méthodes sont uniques à chaque objet.
Essayez vous-même
<?php
require_once 'student.php';
$student1 = new Student();
$student2 = new Student();
$student1->setInfo("Alice", 20);
$student2->setInfo("Bob", 22);
echo $student1->name . " is " . $student1->age . " at " . $student1->school . "\n";
echo $student2->name . " is " . $student2->age . " at " . $student2->school . "\n";
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