Dans cette série, je couvrirai les principes fondamentaux de la programmation orientée objet (POO) PHP. Le contenu sera organisé en parties séquentielles, chacune se concentrant sur un sujet spécifique. Si vous êtes débutant ou si vous n'êtes pas familier avec les concepts de POO, cette série est conçue pour vous guider étape par étape. Dans cette partie, je parlerai du constructeur et du destructeur en PHP. Commençons ensemble le voyage d’apprentissage de PHP OOP !
Essayons d’abord de comprendre qu’est-ce qu’un constructeur ? En termes simples, le constructeur est une méthode spéciale qui est automatiquement appelée lors de la création d’un objet d’une classe. Le constructeur est utilisé pour initialiser les propriétés de l'objet. C'est une méthode magique en PHP. Mais maintenant, nous devons comprendre le constructeur en détail. Regardons d'abord un exemple de code.
class Car { public $name; public $color; public function setValue(string $name, string $color) { $this->name = $name; $this->color = $color; } public function getValue() { echo "Car name: $this->name\n"; echo "Car color: $this->color\n"; } } $toyota = new Car; $toyota->setValue('Toyota', 'Red'); $toyota->getValue();
Dans l'exemple ci-dessus, ou dans la section précédente, nous définissons la valeur d'un objet à l'aide d'une méthode. C'est ce qu'on appelle une méthode Setter, cela signifie qu'après avoir créé un objet d'une classe, si nous définissons la valeur à l'aide d'une méthode de cet objet, elle est appelée méthode Setter. Cependant, nous pouvons simplifier ce processus en utilisant la méthode magique intégrée à PHP. Cette méthode s'appelle le constructeur, et en PHP, elle est définie à l'aide de __construct(). Regardons l'exemple suivant.
class Car { public $name; public $color; function __construct(string $name, string $color) { $this->name = $name; $this->color = $color; } public function getValue() { echo "Car name: $this->name\n"; echo "Car color: $this->color\n"; } } $toyota = new Car('Toyota', 'Red'); $toyota->getValue();
Dans cet exemple, au lieu d'utiliser la méthode setValue, nous avons utilisé la méthode __construct(). Alors, quel est l’avantage d’utiliser __construct() ? Dans l'exemple précédent, après avoir créé un objet de la classe Car, nous devions transmettre la valeur de chaque voiture à l'aide de la méthode setValue. Mais maintenant, en utilisant __construct(), nous pouvons transmettre la valeur au moment de la création de l'objet, et nous n'avons pas besoin d'appeler une méthode supplémentaire.
Mais maintenant, la question se pose : nous n'avons pas appelé __construct(), alors comment a-t-il reçu la valeur et l'a-t-il défini sur la variable ?
new Car('Toyota', 'Red');
Lorsque nous utilisons __construct() à l'intérieur d'une classe et que ce constructeur reçoit des valeurs de l'extérieur, nous pouvons transmettre les valeurs dans la première parenthèse lors de la création de l'objet de classe. Dès que l’on crée l’objet de cette manière, la méthode __construct() est automatiquement appelée. En d’autres termes, chaque fois que nous créons une instance d’une classe, la méthode __construct() qu’elle appellera instantanément. C'est ainsi que l'on peut initialiser les propriétés d'un objet à l'aide du constructeur. Puisque __construct() est une méthode magique, nous n’avons donc pas besoin de l’appeler explicitement. Il s'exécutera automatiquement dans des scénarios spécifiques pour effectuer certaines tâches.
Un destructeur est aussi une méthode magique en PHP. Lorsque nous créons un objet à l'aide d'une classe, nous effectuons diverses tâches avec cet objet. Mais lorsque les tâches sont terminées, cela signifie que le destructeur sera déclenché lorsque l'objet sera détruit. Le destructeur est défini en PHP en utilisant __destruct().
Ici, il est important de noter que si nous créons plusieurs objets à l'aide d'une classe, la méthode __destruct() sera appelée pour chaque objet lorsqu'ils seront tous détruits. En d’autres termes, la méthode __destruct() sera appelée autant de fois que le nombre d’objets créés à l’aide de cette classe. Regardons l'exemple suivant.
class Car { public $name; public $color; public function setValue(string $name, string $color) { $this->name = $name; $this->color = $color; } public function getValue() { echo "Car name: $this->name\n"; echo "Car color: $this->color\n"; } } $toyota = new Car; $toyota->setValue('Toyota', 'Red'); $toyota->getValue();
Si nous exécutons ce code, nous verrons le résultat suivant.
class Car { public $name; public $color; function __construct(string $name, string $color) { $this->name = $name; $this->color = $color; } public function getValue() { echo "Car name: $this->name\n"; echo "Car color: $this->color\n"; } } $toyota = new Car('Toyota', 'Red'); $toyota->getValue();
Maintenant, vous vous demandez peut-être dans quels cas nous devrions utiliser la méthode __destruct(). Lorsque nous travaillons avec des fichiers ou des bases de données, nous devons les ouvrir, mais une fois nos tâches terminées, nous devons fermer le fichier ou la base de données. Dans de tels cas, nous pouvons utiliser la méthode __destruct(). De plus, il existe de nombreux cas d'utilisation réels de la méthode __destruct().
J'espère que nous avons maintenant une certaine compréhension de __construct() et __destruct(). Outre ces méthodes, il existe d'autres méthodes magiques importantes en PHP, telles que __call(), __callStatic(), etc. Nous pouvons également utiliser ces méthodes, car elles effectuent certaines tâches dans divers scénarios au sein d'une classe.
Donc, c’est tout pour aujourd’hui. Nous parlerons davantage d’un autre sujet dans la prochaine leçon. Restez à l'écoute! Bon codage !
Vous pouvez me contacter sur Linkedin et GitHub.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!