Les classes et les objets en PHP
Les classes et les objets sont les composants fondamentaux de la POO. Il y a souvent une confusion entre les classes et les objets. Dans ce tutoriel, nous essayons de vous expliquer la différence entre classe et objet.
Le concept d’utilisation de classes et d’objets consiste à encapsuler l’état et le comportement dans une seule unité de programmation. Les objets PHP sont similaires aux objets du monde réel. Par exemple, nous pouvons créer un objet voiture en PHP, qui aura des propriétés telles que la vitesse et la couleur actuelles; et un comportement comme: accélérer et freiner.
Qu’est ce qu’une classe?
Une classe est un plan ou un prototype défini par l’utilisateur à partir duquel des objets sont créés. Il représente l’ensemble des propriétés ou méthodes communes à tous les objets d’un type.
Exemple :
<?php class Voiture { private $vitesse; private $model; function __construct($model) { $this->model = $model; } public function accelerer() { // ajoute 10 miles par heure à la vitesse actuelle $vitesse = $vitesse + 10; } public function freiner() { // déduire 10 miles par heure à la vitesse actuelle $vitesse = $vitesse - 10; } } ?>
Regardez le code ci-dessus. Les états (vitesse et model) sont stockés dans des attributs et le comportement de l’objet (accélérer et freiner) est indiqué via des méthodes. Dans cet exemple, les méthodes sont accelerer() et freiner().
Une fois que la classe a été définie, les objets peuvent être créés à partir de la classe avec le mot-clé « new ». Les méthodes de classe et les propriétés sont directement accessibles via cette instance d’objet.
Vous voyez que nous avons utilisé le mot-clé private devant les propriétés. C’est ce qu’on appelle la visibilité de la propriété. Chaque propriété peut avoir l’un des trois niveaux de visibilité, appelé private, protected et public.
- private: seules les propriétés privées d’une classe peuvent être accessibles par les méthodes de la classe. Les méthodes de la classe seront introduites un peu plus tard.
- protected: les propriétés protégées sont similaires aux propriétés privées sauf que les propriétés protégées peuvent être accessibles aux sous-classes. Vous en apprendrez plus sur les sous-classes et l’héritage plus tard.
- public: les propriétés publiques peuvent être accessibles non seulement par les méthodes internes mais également par le code situé en dehors de la classe.
Constructeur de la classe
Les constructeurs sont des méthodes spéciales. Celles-ci sont appelées lorsque nous créons une nouvelle instance de l’objet. Dans notre exemple ci-dessus, le constructeur est:
<?php function __construct($model) { $this->model = $model; } ?>
Les constructeurs doivent être définit avec le mot-clé __construct. Ils peuvent prendre des paramètres ou non. Le paramètre dans cet exemple est « $model ». Nous créons un nouvel objet voiture en utilisant ce constructeur comme ceci:
<?php $renault = new Voiture("Renault"); ?>
Qu’est ce qu’un objet?
C’est une unité de base de la programmation orientée objet et représente les entités de la vie réelle. Un programme PHP typique crée de nombreux objets qui, comme vous le savez, interagissent en appelant des méthodes. Un objet est composé de:
- Etat: Il est représenté par les attributs d’un objet.
- Comportement: Il est représenté par les méthodes d’un objet.
- Identité: attribue un nom unique à un objet et permet à un objet d’interagir avec d’autres objets.
Exemple : Création des objets
<?php //crée une nouvelle voiture Renault $renault = new Voiture("Renault"); //crée une nouvelle voiture Peugeot $peugeot = new Voiture("Peugeot"); //appelle la méthode d'accélération sur Renault $renault->accelerer(); //appelle la méthode d'accélération sur Peugeot $peugeot->accelerer(); //maintenant freiner la voiture Renault $renault->freiner(); ?>
Pour appeler une méthode d’un objet, utilisez l’opérateur -> suivi par le nom de la méthode et n’oublier pas les parenthèses ().