Arv i PHP

Arv i PHP
De tre hovedtrekkene ved objektorientert programmering inkluderer innkapsling, arv og polymorfisme. Når du programmerer, kan det hende du må bruke en viss kode flere ganger, og bruk av arv reduserer repetisjonen av omskrivingskode manuelt ved å gjenbruke koden. Arv er en metode for å lage en ny klasse ved å arve en baseklasse. Formålet med den nye klassen vil kunne få tilgang til alle klassemedlemmer i den nye klassen, så vel som baseklassen, gjennom arv. På denne måten kan den samme koden gjenbrukes mange ganger ved å skrive den bare en gang. PHP bruker forlenge nøkkelord for arv. Denne opplæringen viser hvordan du implementerer arv ved hjelp av PHP -skript.

Arvens syntaks

Arvens syntaks vises nedenfor.

Klasse newclass utvider oldclass

..

Her, Newclass kalles barn, avledet, eller underklasse; og oldclass kalles foreldre, utgangspunkt, eller superklasse. Den neste delen av denne opplæringen viser noen eksempler på å bruke arv i PHP.

Eksempel 1: Enkel bruk av arv

Følgende skript viser en enkel bruk av arv i PHP -skriptet. I manuset, Ansatt er foreldreklassen som inneholder to klassevariabler, og setData () Metoden brukes til å initialisere klassevariablene. De Utøvende Klasse er barneklassen som er arvet fra Ansatt klasse ved å bruke forlenge nøkkelord. Den inneholder en klassevariabel og en metode som er navngitt Vis detaljer() For å skrive ut klassevariablene til foreldre- og barneklasser. Etter å ha opprettet gjenstanden for barneklassen, vil metodene til foreldre- og barneklassene bli kalt ved hjelp av Child Class -objektet.

// foreldreklasse
klasseansatt
// Foreldreklassevariabler
offentlig $ navn;
offentlig $ avdeling;
// Initialiser grunnleggende data
offentlig funksjon setData ()

$ this-> name = "John Abraham";
$ this-> avdeling = "HR";


// barneklasse
Klasseutøvende utvider ansatt
// barneklassevariabel
public $ betegnelse = "Markedsføringsleder";
// Skriv ut ansattes detaljer
Offentlig funksjon ShowDetails ()

if ($ dette-> navn != "" && $ this-> betegnelse != "" && $ this-> avdeling != "")

ekko "Ansattedetaljer:
";
ekko "Navn:".$ this-> navn.""
";
ekko "Betegnelse:".$ this-> betegnelse.""
";
Echo "Department:".$ this-> avdeling.""
";



// Lag objekt Child -klassen
$ obJemp = new Executive ();
// Ring foreldreklassemetode
$ obJemp-> setData ();
// Ring Child Class Method
$ obJemp-> ShowDetails ();
?>

Produksjon

Følgende utgang vises etter å ha kjørt skriptet. Her er ansattes navn og avdelingsverdier skrevet ut fra foreldreklassen, og ansattes betegnelsesverdi skrives ut fra barneklassen.

Eksempel 2: Arv med overstyring av metoden

Metode overstyrer skjer når en metode med samme navn er erklært i både foreldrene og barneklassen. Følgende skript viser arv med metode som overstyrer ved bruk av PHP -skriptet. Her, The Vis detaljer() Metoden er erklært i både foreldreklassen og barneklassen. Formålet med foreldreklassen vil få tilgang til Vis detaljer() Metode for foreldreklassen, og gjenstanden for barneklassen vil få tilgang til Vis detaljer() Metode for barneklassen.

// foreldreklasse
klasseansatt
// Foreldreklassevariabler
offentlig $ navn;
offentlig $ avdeling;
// Initialiser data
funksjon __konstruksjon ()

$ this-> name = "Janifer Lopez";
$ this-> avdeling = "salg";

// Skriv ut ansattes detaljer
Offentlig funksjon ShowDetails ()

ekko "Ansattedetaljer: [Fra foreldreklasse]
";
ekko "Navn:".$ this-> navn.""
";
Echo "Department:".$ this-> avdeling.""

";


// barneklasse
Klasseutøvende utvider ansatt
// barneklassevariabel
public $ betegnelse = "salgssjef";
// Skriv ut ansattes detaljer
Offentlig funksjon ShowDetails ()

ekko "Ansattedetaljer: [Fra barneklasse]
";
ekko "Navn:".$ this-> navn.""
";
ekko "Betegnelse:".$ this-> betegnelse.""
";
Echo "Department:".$ this-> avdeling.""
";


// Lag foreldreklasseobjekt
$ objEmployee = ny ansatt ();
// Ring foreldreklassemetode
$ objemploye-> ShowDetails ();
// Lag barneklasseobjekt
$ objexecutive = new Executive ();
// Ring Child Class Method
$ objexecutive-> showDetails ();
?>

Produksjon

Følgende utgang vises etter å ha kjørt skriptet. Når Vis detaljer() Metoden kalles med objektet til foreldreklassen, den vil vise utgangen fra foreldreklassen. Når Vis detaljer() Metoden kalles med objektet for barneklassen, den vil vise utgangen fra barneklassen.

Eksempel 3: Ring foreldrekonstruktør inne i barnekonstruktør

Når både foreldre- og barneklassen inneholder en konstruktørmetode, kan barneklassen ringe konstruktøren til foreldreklassen. Følgende skript viser hvordan du kan ringe konstruktøren av foreldreklassen fra konstruktøren av barneklassen. De Foreldre :: __ konstruksjon () Uttalelse brukes til å ringe foreldrekonstruktøren.

// foreldreklasse
klasseansatt
// Foreldreklassevariabler
offentlig $ navn;
offentlig $ avdeling;
// Initialiser data
funksjon __construct ($ name, $ avd.)

$ this-> name = $ name;
$ this-> avdeling = $ avd


// barneklasse
Klasseutøvende utvider ansatt
// barneklassevariabler
offentlig $ betegnelse;
offentlig $ lønn;
// Initialiser data
funksjon __construct ($ name, $ avdeling, $ betegnelse, $ lønn)

// Ring foreldreklassekonstruktør
foreldre :: __construct ($ name, $ avdeling);
$ this-> betegnelse = $ betegnelse;
$ this-> lønn = $ lønn;

// Skriv ut ansattes detaljer
Offentlig funksjon ShowDetails ()

ekko "Ansattedetaljer:
";
ekko "Navn:".$ this-> navn.""
";
ekko "Betegnelse:".$ this-> betegnelse.""
";
Echo "Department:".$ this-> avdeling.""
";
ekko "Lønn: $".$ this-> Lønn.""
";


// Lag barneklasseobjekt
$ objexecutive = new Executive ('Jafar Iqbal', 'Marketing', 'Marketing Executive', 4500);
// Ring Child Class Method
$ objexecutive-> showDetails ();
?>

Produksjon

Følgende utgang vises etter å ha kjørt skriptet. Her initialiseres ansattes navn og avdeling av foreldrekonstruktøren, og ansattes betegnelse og lønn initialiseres av barnekonstruktøren.

Eksempel 4: Implementere hierarkisk arv

Følgende skript viser hvordan du implementerer hierarkisk arv i PHP. Her, Klasse2 er skapt ved å arve Klasse1, og Klasse3 er skapt ved å arve Klasse2. I dette eksemplet er tre metoder definert i tre klasser. De Klasse3 Objekt opprettes for å kalle metodene for alle klasser.

// foreldreklasse
Klasseklasse1
funksjon viser method1 ()

ekko "Det er foreldreklassen
";


// barneklasse
Klasse klasse2 utvider klasse1
Funksjon ShowMethod2 ()

ekko "Det er barneklassen
";


// Grand Child Class
Klasse klasse3 utvider klasse2
funksjon viser method3 ()

ekko "Det er Grand Child -klassen";


$ objekt = ny klasse3 ();
$ objekt-> showMethod1 ();
$ objekt-> showMethod2 ();
$ objekt-> showMethod3 ();
?>

Produksjon

Følgende utgang vises etter å ha kjørt skriptet. Her har den første tekstlinjen dukket opp fra Klasse1, Den andre tekstlinjen har dukket opp fra Klasse2, og den tredje tekstlinjen har dukket opp fra Klasse3.

Videoopplæring

Konklusjon

Denne opplæringen viste deg flere forskjellige typer arv ved hjelp av PHP -skript. Etter å ha lest denne artikkelen, bør du forstå arvebegrepet og dets grunnleggende bruksområder i PHP -skript.