Explication du polymorphisme en PHP [avec exemples]

Publié: 2021-02-19

Le langage de programmation PHP suit un paradigme de programmation orientée objet (POO), ainsi que d'autres structures de base. L'une des caractéristiques les plus importantes des POO est le polymorphisme. En termes généraux, le polymorphisme est dérivé des mots grecs poly signifiant plusieurs et morphisme signifiant formes. Le polymorphisme dans les POO est un concept qui permet de créer des classes avec différentes fonctionnalités dans une seule interface.

Généralement, il est de deux types : à la compilation (surcharge) et à l'exécution (écrasement), mais le polymorphisme en PHP ne prend pas en charge la surcharge, ou en d'autres termes, le polymorphisme à la compilation. L'avantage le plus important du polymorphisme en PHP est que vous n'avez pas à vous soucier des détails techniques pour définir quel code est écrit dans quelle classe, car tous seront utilisés de la même manière.

Un exemple facile à comprendre de polymorphisme PHP orienté objet est la zone de différentes formes géométriques. Il existe de nombreuses formes avec des longueurs, des largeurs, des rayons et d'autres paramètres différents, mais toutes les figures auront une aire. Ne vous inquiétez pas si vous ne l'avez pas compris, car nous examinerons divers exemples de polymorphisme en PHP pour mieux comprendre le concept et comment l'implémenter.

Table des matières

Comment implémenter le polymorphisme en PHP ?

Le polymorphisme en PHP peut être implémenté soit par l'utilisation d'interfaces, soit par des classes abstraites. Nous examinerons des exemples pour l'appliquer dans les deux sens.

Exemple de polymorphisme en PHP à implémenter dans les interfaces

Vous pouvez considérer l'interface comme un modèle pour toutes les classes qui l'étendent. Ils sont similaires aux classes avec une seule différence primaire. Vous pouvez déclarer et définir des noms de méthode et des arguments dans les interfaces, mais vous ne pouvez pas écrire de code de méthode. Toute classe implémentant une interface implémentera toutes ses méthodes. La syntaxe d'une interface est :

exemple d'interfaceInterface{

fonction publique methodName();

}

Puisque vous connaissez maintenant les interfaces, regardons comment implémenter le polymorphisme en PHP dans une interface.

<?php

interface ShapeExmp{

fonction publique calcArea();

}

la classe SquareExmp implémente ShapeExmp{

côté $ privé ;

fonction publique __construct($side){

$ce->côté = $côté ;

}

fonction publique calcAire(){

$zone = $ce->côté * $ce->côté ;

echo "Aire du carré = ".$area;

}

}

la classe RectangleExmp implémente ShapeExmp{

privé $width1 ;

privé $hauteur1 ;

fonction publique __construct($width1,$height1){

$this->width1 = $width1 ;

$this->hauteur1 = $hauteur1 ;

}

fonction publique calcAire(){

$area = $this->width1 * $this->height1;

echo "<br>Aire du rectangle = ".$area;

}

}

la classe TriangleExmp implémente ShapeExmp{

privé $cons1 ;

privé $width1 ;

privé $hauteur1 ;

fonction publique __construct($cons1,$width1,$height1){

$this->cons1 = $cons1 ;

$this->width1 = $width1 ;

$this->hauteur1 = $hauteur1 ;

}

fonction publique calcAire(){

$area = $this->cons1 * $this->width1 * $this->height1;

echo "<br>Aire du triangle= ".$area;

}

}

$squ = new SquareExmp(8);

$squ->zonecalc();

$rect = new RectangleExmp(10,15);

$rect->calcZone();

$tri = new TriangleExmp(0.5,10,12);

$tri->calcZone();

?>

Sortir:

Aire du carré = 64

Aire du rectangle = 150

Aire du triangle= 3

Comme vous pouvez le voir dans l'exemple ci-dessus, nous avons implémenté le polymorphisme en PHP via une interface. Nous avons construit et obtenu l'aire de trois formes : carré, triangle et rectangle. Les classes implémentées ne cessent de changer, et les arguments aussi, mais le résultat est toujours l'aire de la forme. De même, vous pouvez également construire et calculer l'aire d'autres formes telles que des cercles, des parallélogrammes, des ellipses, etc.

Exemple de polymorphisme en PHP à implémenter dans des classes abstraites

Les classes abstraites en PHP sont les classes parentes qui ont des méthodes définies mais pas le code. Ils sont définis à l'aide du mot-clé « abstract ». Vous ne pouvez les utiliser que pour hériter d'autres classes. Chaque classe abstraite a une ou plusieurs méthodes abstraites. Ces classes nécessitent que leurs classes enfants remplissent les méthodes portant le même nom. Par conséquent, différentes classes enfants utilisent les méthodes de la même manière, implémentant ainsi le polymorphisme en PHP. Comprenons mieux cela avec un exemple de polymorphisme en PHP.

<?php

classe abstraite shapeExmp{

fonction protégée abstraite calcArea();

}

la classe rectangleExmp étend shapeExmp{

var $x,$y;

fonction publique __construct($x , $y){

$this->x=$x ;

$this->y=$y ;

}

fonction publique calcAire(){

$a=$ce->x*$ce->y ;

retourner $a ;

}

}

la classe circleExmp étend shapeExmp{

var$r;

fonction publique __construct($r){

$this->r=$r;

}

fonction publique calcAire(){

$pi=3,142 ;

$a=pow($this->r,2)*$pi;

retourner $a ;

}

}

la classe squareExmp étend shapeExmp{

var $s ;

fonction publique __construct($s){

$this->s=$s ;

}

fonction publique calcAire(){

$a=$this->s * $this->s ;

retourner $a ;

}

}

$rect=nouveau rectangleExmp(8,10);

$zone=$rect->calcZone();

echo "Zone rectangle = $zone <br>" ;

$circ=nouveau cercleExmp(5);

$zone=$circ->calcZone();

echo "Zone circulaire=$zone<br>" ;

$squ=new squareExmp(7);

$zone=$squ->calcZone();

echo "Aire carrée= $aire <br>" ;

?>

Sortir:

Aire du rectangle = 80

Zone du cercle = 78,55

Superficie carrée=49

Comme vous pouvez le voir dans l'exemple ci-dessus, nous avons d'abord créé une classe abstraite shapeExmp. Nous y avons ensuite défini une fonction abstraite calcArea(). Pour calculer l'aire du cercle, du rectangle et du carré, nous avons dérivé ces classes de la classe abstraite et utilisé la fonction abstraite calcArea(). De même, vous pouvez utiliser les classes abstraites pour implémenter le polymorphisme en PHP et l'utiliser pendant l'exécution.

Paiement : Projets PHP sur Github

Apprenez des cours de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Conclusion

Cela aurait dissipé tous vos doutes sur le polymorphisme en PHP. Vous pouvez essayer de l'utiliser de différentes manières à l'aide de n'importe quel IDE ou compilateur PHP en ligne. PHP est devenu un langage de programmation répandu. Il existe de nombreuses opportunités de carrière disponibles en PHP . Il est bien adapté au développement web interactif et indispensable pour apprendre à devenir un développeur full-stack.

Si vous souhaitez poursuivre une carrière de développement full-stack, vous pouvez consulter le programme Executive PG upGrad et IIIT-B dans le cours de développement de logiciels full-stack . Le cours vous offre une formation sur 16 langages et outils de programmation différents. Avec plus de 9 missions de projet à réaliser pendant le cours, upGrad vous donne une assurance de placement. Il vous offre plus de 500 heures de matériel de formation pour vous aider à apprendre à créer des sites Web et des applications robustes et évolutifs.

Qu'est-ce que la programmation orientée objet ?

Qu'est-ce que le polymorphisme en programmation ?

Le polymorphisme est la capacité d'avoir plus d'une forme. Par exemple, un chien a 4 pattes mais les pattes sont différentes. Il s'agit d'une forme différente du même objet. En programmation informatique, le polymorphisme est la capacité d'avoir différentes entrées et d'avoir une seule sortie. Par exemple, nous pouvons avoir une classe de personne, de travailleur et de client et chaque individu a des entrées différentes. Ils ont des entrées différentes car chaque personne a un nom, une adresse et un numéro de téléphone différents. Cependant, la sortie est la même pour tous, c'est-à-dire la classe Person.

Comment fonctionnent les classes et les objets en programmation ?

Les classes sont une unité fondamentale de la programmation orientée objet (POO). Ce sont des plans pour les objets, et en tant que tels, ils sont utilisés pour créer des objets et pour définir le comportement des objets. Les classes peuvent être considérées comme les blocs de construction universels de la POO. Ils sont utilisés pour créer des objets spécifiques à une tâche ou une situation particulière. Contrairement au monde réel, cependant, les classes peuvent être créées presque à tout moment et dans n'importe quel ordre. Vous pouvez créer une classe avant même de savoir comment elle sera utilisée - un processus connu sous le nom d'instanciation de classe "anonyme".