Spiegazione del polimorfismo in PHP [con esempi]

Pubblicato: 2021-02-19

Il linguaggio di programmazione PHP segue un paradigma di programmazione orientata agli oggetti (OOP), insieme ad altre strutture di base. Una delle caratteristiche più significative degli OOP è il polimorfismo. In termini generali, il polimorfismo deriva dalle parole greche poli che significa molti e morfismo che significa forme. Il polimorfismo negli OOP è un concetto che consente di creare classi con funzionalità diverse in un'unica interfaccia.

Generalmente, è di due tipi: in fase di compilazione (sovraccarico) e in fase di esecuzione (override), ma il polimorfismo in PHP non supporta l'overloading, o in altre parole, il polimorfismo in fase di compilazione. Il vantaggio più significativo del polimorfismo in PHP è che non devi preoccuparti degli aspetti tecnici della definizione di quale codice è scritto in quale classe, poiché tutto verrà utilizzato allo stesso modo.

Un esempio di facile comprensione di polimorfismo PHP orientato agli oggetti è l'area delle diverse forme geometriche. Esistono molte forme con diverse lunghezze, larghezze, raggi e altri parametri, ma tutte le figure avranno un'area. Non preoccuparti se non l'hai capito, poiché esamineremo vari esempi di polimorfismo in PHP per capire meglio il concetto e come implementarlo.

Sommario

Come implementare il polimorfismo in PHP?

Il polimorfismo in PHP può essere implementato mediante l'uso di interfacce o classi astratte. Vedremo esempi per applicarlo in entrambi i modi.

Esempio di polimorfismo in PHP da implementare nelle interfacce

Puoi considerare l'interfaccia come un progetto per tutte le classi che la estendono. Sono simili alle classi con una sola differenza primaria. È possibile dichiarare e definire i nomi e gli argomenti dei metodi all'interno delle interfacce, ma non è possibile scrivere il codice del metodo. Qualsiasi classe che implementa un'interfaccia implementerà tutti i suoi metodi. La sintassi di un'interfaccia è:

esempio di interfacciaInterfaccia{

funzione pubblica nomemetodo();

}

Dato che ora conosci le interfacce, diamo un'occhiata a come implementare il polimorfismo in PHP in un'interfaccia.

<?php

interfaccia ShapeExmp{

funzione pubblica calcArea();

}

classe SquareExmp implementa ShapeExmp{

lato $ privato;

funzione pubblica __construct($side){

$questo->lato = $lato;

}

funzione pubblica calcArea(){

$area = $questo->lato * $questo->lato;

echo “Area del quadrato = “.$area;

}

}

la classe RectangleExmp implementa ShapeExmp{

privato $larghezza1;

privato $ altezza1;

funzione pubblica __construct($larghezza1,$altezza1){

$questo->larghezza1 = $larghezza1;

$questo->altezza1 = $altezza1;

}

funzione pubblica calcArea(){

$area = $questo->larghezza1 * $questo->altezza1;

echo “<br>Area del rettangolo = “.$area;

}

}

classe TriangleExmp implementa ShapeExmp{

privato $cons1;

privato $larghezza1;

privato $ altezza1;

funzione pubblica __construct($cons1,$larghezza1,$altezza1){

$questo->cons1 = $cons1;

$questo->larghezza1 = $larghezza1;

$questo->altezza1 = $altezza1;

}

funzione pubblica calcArea(){

$area = $questo->cons1 * $questo->larghezza1 * $questo->altezza1;

echo “<br>Area del triangolo= “.$area;

}

}

$qq = nuovo SquareExmp(8);

$q->calcArea();

$rect = new RectangleExmp(10,15);

$rect->calcArea();

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

$tri->calcArea();

?>

Produzione:

Area del quadrato = 64

Area del rettangolo = 150

Area del triangolo= 3

Come puoi vedere nell'esempio sopra, abbiamo implementato il polimorfismo in PHP attraverso un'interfaccia. Abbiamo costruito e ottenuto l'area di tre forme: quadrato, triangolo e rettangolo. Le classi implementate continuano a cambiare, e anche gli argomenti, ma il risultato è sempre l'area della forma. Allo stesso modo, puoi anche costruire e calcolare l'area di altre forme come cerchi, parallelogrammi, ellissi e altro.

Esempio di polimorfismo in PHP da implementare in classi astratte

Le classi astratte in PHP sono le classi padre che hanno metodi definiti ma non il codice. Sono definiti con l'ausilio della parola chiave “astratto”. Puoi usarli solo per ereditare altre classi. Ogni classe astratta ha uno o più metodi astratti. Queste classi richiedono alle classi figlie di riempire i metodi con lo stesso nome. Quindi, diverse classi figlie usano i metodi, allo stesso modo, implementando così il polimorfismo in PHP. Capiamolo meglio con un esempio di polimorfismo in PHP.

<?php

classe astratta shapeExmp{

funzione protetta astratta calcArea();

}

classe rettangoloExmp estende shapeExmp{

var $x,$y;

funzione pubblica __construct($x , $y){

$questo->x=$x;

$questo->y=$y;

}

funzione pubblica calcArea(){

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

restituire $a;

}

}

classe circleExmp estende shapeExmp{

variabile $r;

funzione pubblica __construct($r){

$questo->r=$r;

}

funzione pubblica calcArea(){

$ pi=3.142;

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

restituire $a;

}

}

classe squareExmp estende shapeExmp{

variabile $s;

funzione pubblica __construct($s){

$questo->s=$s;

}

funzione pubblica calcArea(){

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

restituire $a;

}

}

$rect=nuovo rettangoloEsmp(8,10);

$area=$rect->calcArea();

echo “Area rettangolo= $area <br>”;

$circ=nuovo circleExmp(5);

$area=$circ->calcArea();

echo “Area circonferenza=$area<br>”;

$qq=nuovo quadratoEsmp(7);

$area=$sq->calcArea();

echo “Area quadrata= $area <br>”;

?>

Produzione:

Area del rettangolo= 80

Area del cerchio=78,55

Area quadrata=49

Come puoi vedere nell'esempio sopra, abbiamo prima creato una classe astratta shapeExmp. Abbiamo quindi definito una funzione astratta calcArea() al suo interno. Per calcolare l'area del cerchio, del rettangolo e del quadrato, abbiamo derivato quelle classi dalla classe astratta e abbiamo utilizzato la funzione astratta calcArea(). Allo stesso modo, puoi usare le classi astratte per implementare il polimorfismo in PHP e usarlo durante il runtime.

Checkout: Progetti PHP su Github

Impara i corsi di software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Conclusione

Questo avrebbe cancellato tutti i tuoi dubbi sul polimorfismo in PHP. Puoi provare a usarlo in diversi modi con l'aiuto di qualsiasi IDE o compilatore PHP online. PHP è cresciuto fino a diventare un linguaggio di programmazione prevalente. Ci sono numerose opportunità di carriera disponibili in PHP . È adatto per lo sviluppo web interattivo ed è essenziale per imparare a diventare uno sviluppatore full-stack.

Se vuoi intraprendere una carriera di sviluppo full-stack, puoi dare un'occhiata al programma Executive PG di upGrad e IIIT-B nel corso di sviluppo software full-stack . Il corso offre formazione su 16 diversi linguaggi e strumenti di programmazione. Con oltre 9 incarichi di progetto da completare durante il corso, upGrad ti offre la garanzia del posizionamento. Ti offre oltre 500 ore di materiali di formazione per aiutarti a imparare a creare siti Web e applicazioni robusti e scalabili.

Che cos'è la programmazione orientata agli oggetti?

Che cos'è il polimorfismo nella programmazione?

Il polimorfismo è la capacità di avere più di una forma. Ad esempio, un cane ha 4 zampe ma le gambe sono diverse. Questa è una forma diversa dello stesso oggetto. Nella programmazione per computer, il polimorfismo è la capacità di avere input diversi e avere un unico output. Ad esempio, possiamo avere una classe di Persona, Lavoratore e Cliente e ogni individuo ha input diversi. Hanno input diversi poiché ogni persona ha nome, indirizzo e numero di telefono diversi. Tuttavia, l'output è lo stesso per tutti che è la classe di Person.

Come funzionano le classi e gli oggetti nella programmazione?

Le classi sono un'unità fondamentale della programmazione orientata agli oggetti (OOP). Sono progetti per oggetti e come tali vengono utilizzati per creare oggetti e per definire il comportamento degli oggetti. Le classi possono essere considerate come gli elementi costitutivi universali dell'OOP. Vengono utilizzati per creare oggetti specifici per una particolare attività o situazione. A differenza del mondo reale, tuttavia, le classi possono essere create quasi in qualsiasi momento e in qualsiasi ordine. Puoi creare una classe anche prima di sapere come verrà utilizzata, un processo noto come istanziazione di una classe "anonima".