Le constructeur est le concept PHP5 OOP (Object Oriented Programming). Le constructeur est associé aux classes que nous déclarons dans le programme. Le constructeur est appelé automatiquement lorsque l'objet de la classe est instancié, donc la définition du constructeur est la suivante : « Un constructeur est une méthode spéciale qui est appelée automatiquement lorsque l'objet de la classe est instancié ». Dans cette rubrique, nous allons découvrir les constructeurs en PHP.
PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Syntaxe
<?php Class Classname { //constructor function __construct() { //statements } } ?>
Dans le morceau de code ci-dessus, le constructeur commence par un double trait de soulignement __ suivi du mot-clé construct. Un constructeur sans __construct() ou si le nom de la classe est modifié, alors la méthode définie est simplement une méthode et non un constructeur. Il est donc important de définir le constructeur dans une classe selon la syntaxe définie.
Voici quelques types de constructeurs avec leur résultat ci-dessous
Pour clarifier le constructeur prédéfini, regardons un exemple donné ci-dessous
Exemple de constructeur prédéfini
Code :
<?php class Person { function CanSpeak() { echo " Not a constructor method " . '<br>'; } function __construct() { echo " In the constructor method " . '<br>'; } } //Object of class calling the constructor internally $p = new Person(); // Object of class calling the normal method $p->CanSpeak(); ?>
Sortie :
Dans l'exemple ci-dessus
Nous avons une classe Person, qui a deux méthodes, où une méthode personne CanSpeak() et la méthode constructeur __construct(). Ensuite, nous avons instancié la classe en tant qu'objet $p. En utilisant $p, nous avons appelé la méthode normale. Dès que l'objet est créé, la méthode constructeur est appelée et l'instruction à l'intérieur de la méthode est exécutée. De même, la méthode CanSpeak() qui est une méthode normale et non une méthode constructeur est appelée en utilisant le même objet $p et l'instruction à l'intérieur. cette méthode est exécutée. De plus, comme le constructeur défini ci-dessus n'a aucun argument, nous l'appellerons un constructeur sans argument ou un constructeur prédéfini.
Un constructeur peut être avec ou sans arguments. Le constructeur avec arguments est appelé constructeur paramétré et le constructeur sans arguments est appelé constructeur sans argument. Regardons un exemple.
Exemple de constructeur paramétré
Code :
class Person { private $first; private $email; private $mobile; public function __construct($name, $email, $mobile) { echo "Initialising the object...<br/>"; $this->name = $name; $this->email = $email; $this->mobile = $mobile; } public function showProfile() { echo "My name is: " . $this->name. " " . $this->email. " " . $this->mobile; } } $john = new Person("John","[email protected]", "9187986786"); $john->showProfile();
Sortie :
Jetons un coup d'œil au constructeur de classe de base et à la classe dérivée qui étend la classe de base en utilisant le mot-clé extends qui a son propre constructeur à exécuter et le constructeur parent à exécuter également. Jusqu'à présent, nous n'avons appris que le constructeur déclaré dans une classe. Ajoutons ici quelques connaissances supplémentaires au constructeur. Avec l'exemple suivant, la classe de base Person a un constructeur, maintenant ce constructeur est appelé par la classe dérivée ou la sous-classe en utilisant le mot-clé parent et peut ainsi accéder au constructeur de la classe de base Person.
Tout d'abord, le constructeur Person est appelé, puis le constructeur Customer est appelé qui appelle à nouveau en interne le constructeur Person puis son propre constructeur client et enfin la classe Employee qui étend la classe Person ainsi le constructeur Person est appelé à nouveau.
Code :
class Person { function __construct() { echo "In Person constructor"."<br>"; } } class Customer extends Person { function __construct() { parent::__construct(); echo "In Customer constructor"."<br>"; } } class Employee extends Person { // inherits Person’s constructor } // In Person constructor $p = new Person(); // In Person constructor // In Customer constructor $c = new Customer(); // In Employee constructor $e = new Employee();
Sortie :
Dans l'exemple ci-dessous, nous avons montré comment fonctionnent les méthodes set et get. Utilisation du concept d'encapsulation en POO. Initialement, le programme est déclaré avec un constructeur, une méthode set_name et une méthode get_name. Notez que le constructeur est un constructeur paramétré qui est définitivement appelé lorsque la classe est instanciée et donc la première sortie est que John Doe a ensuite créé un objet de la classe et appelé les méthodes set_name et get_name qui impriment la sortie sous la forme d'Alice.
Code :
<?php class Person { public $name; function __construct($name) { echo $this->name = $name; } function set_name($name) { $this->name = $name; } function get_name() { echo $this->name; } } // In Person constructor $p = new Person('John Doe'); echo "\n"; $p->set_name('Alice'); $p->get_name(); ?>
Sortie :
Il existe trois spécificateurs d'accès en PHP
Public : Les membres de la classe déclarés publics sont accessibles partout.
Protected: Members of the class declared as protected are accessible only within the base class and the derived class which extends the base class.
Private: Members of the class declared as private are accessible with the class that defines it.
Also, the variables declared are called data members or properties and the functions declared are called as data methods. In the below example we have Base Class declared as Person which has the following properties along with the access specifiers public name, protected email and private mobile. Now the class is instantiated with an object $p and these three properties which are accessed from the object. which outputs are an error, why because, the protected property says that protected are accessible only within the base class and the derived class which extends the base class?
Code:
<?php class Person { public $name=; protected $email; private $mobile; function __construct() { print "In Person constructor"; } } // In Person constructor $p = new Person(); echo $p->name; echo $p->email; echo $p->mobile; ?>
Output:
Hope this article finds you what you have been searching for. The article has different examples for you to learn. The more you put the examples in practice the easier it will become to grasp.
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!