PHP OOP - Classes et Objets
Une classe est un modèle pour les objets, et un objet est une instance de cette classe.
Cas OOP
Supposons que nous ayons une classe nommée Fruit. Un Fruit peut avoir des propriétés telles que le nom, la couleur, le poids, etc. Nous pouvons définir des variables comme $name, $color et $weight pour contenir les valeurs de ces propriétés.
Lorsque les objets individuels (pomme, banane, etc.) sont créés, ils héritent de toutes les propriétés et comportements de la classe, mais chaque objet aura des valeurs différentes pour ces propriétés.
Définir une Classe
Une classe est définie en utilisant le class mot-clé, suivi du nom de la classe et d'une paire d'accolades ({}). Toutes ses propriétés et méthodes se trouvent à l'intérieur des accolades :
Syntaxe
<?php
class Fruit {
// le code va ici...
}
?> Ci-dessous, nous déclarons une classe nommée Fruit composée de deux propriétés ($name et $color) et de deux méthodes set_name() et get_name() pour définir et obtenir la propriété $name :
<?php
class Fruit {
// Propriétés
public $name;
public $color;
// Méthodes
function set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
}
?> Remarque : Dans une classe, les variables sont appelées propriétés et les fonctions sont appelées méthodes !
Définir des Objets
Les classes ne sont rien sans objets ! Nous pouvons créer plusieurs objets à partir d'une classe. Chaque objet a toutes les propriétés et méthodes définies dans la classe, mais ils auront des valeurs de propriété différentes.
Les objets d'une classe sont créés en utilisant le new mot-clé.
Dans l'exemple ci-dessous, $apple et $banana sont des instances de la classe Fruit :
Exemple
<?php
class Fruit {
// Propriétés
public $name;
public $color;
// Méthodes
function set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
}
$apple = new Fruit();
$banana = new Fruit();
$apple->set_name('Pomme');
$banana->set_name('Banane');
echo $apple->get_name();
echo "<br>";
echo $banana->get_name();
?> Dans l'exemple ci-dessous, nous ajoutons deux autres méthodes à la classe Fruit, pour définir et obtenir la propriété $color :
Exemple
<?php
class Fruit {
// Propriétés
public $name;
public $color;
// Méthodes
function set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
function set_color($color) {
$this->color = $color;
}
function get_color() {
return $this->color;
}
}
$apple = new Fruit();
$apple->set_name('Pomme');
$apple->set_color('Rouge');
echo "Nom: " . $apple->get_name();
echo "<br>";
echo "Couleur: " . $apple->get_color();
?> PHP - Le mot-clé $this
Le mot-clé $this fait référence à l'objet actuel et n'est disponible que dans les méthodes.
Regardez l'exemple suivant :
Exemple
<?php
class Fruit {
public $name;
}
$apple = new Fruit();
?> Alors, où pouvons-nous changer la valeur de la propriété $name ? Il y a deux façons :
1. À l'intérieur de la classe (en ajoutant une méthode set_name() et en utilisant $this) :
Exemple
<?php
class Fruit {
public $name;
function set_name($name) {
$this->name = $name;
}
}
$apple = new Fruit();
$apple->set_name("Pomme");
echo $apple->name;
?> 2. À l'extérieur de la classe (en changeant directement la valeur de la propriété) :
Exemple
<?php
class Fruit {
public $name;
}
$apple = new Fruit();
$apple->name = "Pomme";
echo $apple->name;
?> PHP - instanceof
Vous pouvez utiliser le instanceof mot-clé pour vérifier si un objet appartient à une classe spécifique :
Exemple
<?php
$apple = new Fruit();
var_dump($apple instanceof Fruit);
?>