PHP, comme Java, prend en charge la programmation orientée objet et utilise des classes et des objets comme éléments de base. Comprendre ces concepts est essentiel pour maîtriser PHP. Ce guide couvrira tout ce que vous devez savoir sur les classes et les objets en PHP.
Une classe en PHP est un modèle pour créer des objets. Il définit la structure et le comportement qu'auront les objets de la classe.
class ClassName { // Propriétés (Champs) // Méthodes }class Car { // Propriétés public $color; modèle $ public ; public $année ; // Méthodes public function displayInfo() { echo "Modèle : " . $this->modèle . "\n" ; echo "Couleur : " . $this->couleur . "\n" ; echo "Année : " . $cette->année . "\n" ; } }Les objets sont des instances de classes. Vous créez un objet à partir d'une classe en utilisant lenouveaumot-clé.
$objectName = new ClassName();class Main { public function run() { $myCar = new Car(); // Création d'un objet de la classe Car $myCar->color = "Red"; $maVoiture->modèle = "Tesla" ; $myCar->année = 2022 ; $maVoiture->displayInfo(); } } $main = nouveau Main(); $main->run();Les propriétés (également appelées champs) représentent l'état d'un objet, tandis que les méthodes définissent le comportement de l'objet.
Les propriétés sont des variables qui contiennent les données d'un objet.
classe Voiture { public $color; modèle $ public ; public $année ; }Les méthodes sont des fonctions définies au sein d'une classe qui décrivent les comportements des objets.
classe Voiture { public $color; modèle $ public ; public $année ; public function displayInfo() { echo "Modèle : " . $this->modèle . "\n" ; echo "Couleur : " . $this->couleur . "\n" ; echo "Année : " . $cette->année . "\n" ; } }Les constructeurs sont des méthodes spéciales qui sont automatiquement appelées lorsqu'un objet est instancié. Ils initialisent l'objet nouvellement créé.
Si aucun constructeur n'est défini, PHP fournit un constructeur par défaut sans argument.
classe Voiture { public $color; modèle $ public ; public $année ; // Constructeur par défaut public function __construct() { } public function displayInfo() { echo "Model: " . $this->modèle . "\n" ; echo "Couleur : " . $this->couleur . "\n" ; echo "Année : " . $cette->année . "\n" ; } }Un constructeur paramétré permet d'initialiser un objet avec des valeurs spécifiques.
classe Voiture { public $color; modèle $ public ; public $année ; // Fonction publique du constructeur paramétré __construct($color, $model, $year) { $this->color = $color; $this->model = $model; $cette->année = $année ; } public function displayInfo() { echo "Modèle : " . $this->modèle . "\n" ; echo "Couleur : " . $this->couleur . "\n" ; echo "Année : " . $cette->année . "\n" ; } }class Main { public function run() { $myCar = new Car("Red", "Tesla", 2022); $maVoiture->displayInfo(); } } $main = nouveau Main(); $main->run();PHP ne prend pas nativement en charge la surcharge de méthodes comme Java, mais vous pouvez la simuler à l'aide de paramètres facultatifs ou en gérant les arguments manuellement au sein d'un seul constructeur.
classe Voiture { public $color; modèle $ public ; public $année ; // Simulation de surcharge du constructeur fonction publique __construct($color = "Unknown", $model = "Unknown", $year = 0) { $this->color = $color; $this->model = $model; $cette->année = $année ; } public function displayInfo() { echo "Modèle : " . $this->modèle . "\n" ; echo "Couleur : " . $this->couleur . "\n" ; echo "Année : " . $cette->année . "\n" ; } }class Main { public function run() { $defaultCar = new Car(); $defaultCar->displayInfo(); $myCar = new Car("Rouge", "Tesla", 2022); $maVoiture->displayInfo(); } } $main = nouveau Main(); $main->run();L'encapsulation en PHP est la pratique consistant à regrouper des données (propriétés) et des méthodes (fonctions) au sein d'une classe. Il garantit que l’état interne d’un objet est à l’abri des interférences extérieures et des utilisations abusives.
Les modificateurs d'accès en PHP contrôlent la visibilité et l'accessibilité des propriétés, des méthodes et des constructeurs. PHP prend en charge trois modificateurs d'accès principaux :
classe Voiture { public $color; // accessible partout protégé $model; // accessible au sein de la classe et des sous-classes private $vin; // accessible uniquement dans la classe public function __construct($color, $model, $vin) { $this->color = $color; $this->model = $model; $this->vin = $vin; } fonction privée getVin() { return $this->vin; // méthode privée } public function displayInfo() { echo "Color: $this->color\n"; echo "Modèle : $this->model\n" ; } }Les membres statiques en PHP sont associés à la classe elle-même plutôt qu'à une instance spécifique. Ils sont accessibles sans créer d'objet de la classe.
Les propriétés statiques sont partagées entre toutes les instances d'une classe. Ils sont déclarés à l'aide dustatiquemot-clé.
classe Voiture { public static $count = 0 ; // propriété statique fonction publique __construct() { self::$count++; } }Les méthodes statiques sont déclarées à l'aide dustatiquemot-clé. Ils appartiennent à la classe plutôt qu'à une instance.
classe Voiture { public static $count = 0 ; public static function displayCount...
[Courte citation de 8% de l'article original]