OOP Grundlæggende i PHP objektorienteret programmering i PHP - Del 1 Indledning Dette er del 1 af min serie, objektorienteret programmering i PHP. PK står for objektorienteret programmering. I denne del af serien ser vi på PHP OOP basics. Bemærk: Hvis du ikke kan se koden, eller hvis du tror noget mangler (brudt link, billede fraværende), bare kontakte mig på [email protected]. Det vil sige, kontakt mig for det mindste problem, du har om, hvad du læser. Forudsætning Der er andre artikler (tutorials) jeg har skrevet i denne blog på PHP.
Du er nødt til at have læst dem eller lignende varer, før du læser denne serie. Titlerne på artiklerne i denne blog, som er forudsætning for at læse denne serie er: - Kom i gang med PHP - Variabler som synonymer i PHP - Global og funktion Variabel Scope i PHP - Nogle Scalar datatyper i PHP En computer sprog bygger op. Der er visse ting, du skal lære først og derefter bruge dem til at lære højere ting. Hver af de ovennævnte titler er enten en tutorial eller første vejledning i en serie. Hvis det er første del af en serie, så skal du have læst hele serien.
Hvis det er en tutorial stående alene, så skal du har læst tutorial. For at nå nogen af artiklerne, så skriv titlen på artiklen og mit navn Chrys i søgefeltet på denne side og klik på Søg. Præambel Når du har et sæt af variable og funktioner, der arbejder sammen og ville vises i mange dele af din kode, kan du sætte alt det i en generaliseret enhed, der kaldes en klasse. Der vil ikke være behov for gentagelse typning af sættet. I denne tutorial, taler vi om et sæt variabler og funktioner. Sættet af variable og funktioner danner en klasse, hvis bragt sammen på en speciel måde.
Funktionerne arbejde med værdierne af de variable. Under denne betingelse, er det muligt, at værdierne af de variable og resultaterne af de medfølgende funktioner kan ændre sig. For at kunne bruge klassen efter den er blevet defineret, er du nødt til at oprette en tilsvarende enhed fra klassen, alt andet lige. Denne særlige enhed kaldes et objekt. I denne del af serien, jeg giver dig den grundlæggende forklaring af PHP klasser og deres objekter. Du bør læse denne serie i den angivne rækkefølge; det vil sige, du begynder med del 1, så del 2, så del 3 og så videre.
Gruppe af variable og funktioner Lad os betragte en gruppe af variable og funktioner, der ville arbejde som en generaliseret enhed. Læs og prøv følgende kode, og bemærk, at det returnerer summen af 2 og 3. $ num1 = 2; $ num2 = 3; funktion add ($ no1, $ NO2) {$ sum = $ no1 + $ no2; returnere $ sum; } $ Resultat = tilføje ($ num1, $ num2); echo $ resultat; ?> Du har to variabler (num1 og num2) og en funktion (tilføje). I koden, er funktionen kaldes, og den returnerede beløb holdes i variablen, resultat. Resultatet sendes til output (webbrowser).
Nu ovenstående kode opsummerer to særlige numre, som er 2 og 3. Du ønsker et stykke kode, der opsummerer to numre, ikke bare 2 og 3. En mulighed er at inkludere en anden funktion, der ville modtage de to tal, ændre værdier af de to variabler, så ring tilføjelsen ($ no1, $ NO2) funktion. Der er en anden mulighed, som er blevet meget populære i årenes løb; det er at skabe en klasse, derefter oprette et objekt fra klassen, der ville tilføje to særlige numre. En klasse er en generaliseret enhed af kode, hvorfra ting kalder kan oprettes genstande at gøre særlige opgaver.
Et formål kaldes instans af en klasse. Bemærk: i ovenstående kode de to variabler ($ num1 og $ num2) og funktion (tilføje ()), arbejde sammen. Derfor er det tilrådeligt at have de to variabler og funktion i en enhed kaldet en klasse. Klasse En klasse er en generaliseret enhed (definition), hvorfra objekter kan instantieres (oprettet). En klasse er dybest set en kode enhed, der har variable og funktioner, der arbejder sammen. De variable kaldes egenskaber og funktioner kaldes metoder.
En klasse kan løse et problem (udføre en opgave), men det er generelt ikke tilrådeligt for en klasse til at løse et problem. Det er et formål skabt ud fra en klasse, der forventes at udføre en opgave (løse et problem); ikke klassen. Når du opretter et objekt fra en klasse, siger vi du instantiere objektet. En variabel af klassen kaldes en egenskab af klassen. En funktion af klassen kaldes en fremgangsmåde af klassen. Egenskaber af en klasse kaldes også datamedlemmer (af klassen). Et objekt skabt ud fra en klasse har de samme egenskaber og metoder som klassen.
En klasse og Objekt oprettet fra ovenstående kode ovenstående kode kan omdannes til en klasse og objekt på følgende måde: class Lommeregner {public $ num1; offentlig $ num2; offentlig funktion add () {$ sum = $ this-> num1 + $ this-> num2; returnere $ sum; }} $ MyObj = ny Lommeregner (); $ myObj-> num1 = 2; $ myObj-> num2 = 3; $ resultere = $ myObj-> tilføje (); echo $ resultat; ?> Du definerer en klasse, der begynder med det reserverede ord, klasse. Så har du en plads og derefter følge det med navnet på klassen. Du har valgt, hvad navn, du vil give for klassen.
Jeg har givet navnet Lommeregner fordi klassen er at gøre nogle beregninger. Efter klassen navn, har du et par krøllede parenteser. Der er udsagn og blokke inde i krøllede parenteser. Alle erklæringer til klassen gå inde i seler. Det er almindeligt at skrive variablerne, før funktionerne. Variablerne i klassen kaldes ejendomme og de funktioner i klassen kaldes metoder. I definitionen af en grundlæggende klasse som den ovenfor, du forud for de egenskaber og metoder med det reserverede ord, offentligheden.
De variabler og den funktion, vi havde i det forrige program er de samme variable og funktion, vi nu har i klassen. Inde i en metode (funktion) definition i en klasse definition, for at få adgang en ejendom, du begynder med den foruddefinerede variabel, $ dette. $ dette betyder klasse eller objekt, der har metoden. Efter at skrive $ dette, du skriver pilen operatør ->. Efter at du skrive navnet på ejendommen (variabel) uden $ tegn. Læse beskrivelsen af ovennævnte klasse at værdsætte, hvordan en klasse er defineret.
Under normale omstændigheder, erklærer du egenskaberne i en klasse, og du ikke initialisere dem. Det er grunden til i ovenstående klasse, num1 og num2 har ikke nogen værdier, som er betroet dem. Det er en almindelig praksis. Du kan stadig tildele værdier til de egenskaber, hvis du ønsker at, som du ville gøre til variabler uden for klassen. Der er det, der kaldes constructor-funktion, som kan bruges til at tildele startværdier til dem som et objekt bliver skabt (instantieres) fra klassen (se senere).
Bemærk: Det er almindeligt at begynde navnet på en klasse med et stort bogstav og navnet på en genstand med en lille bogstav. Oprettelse af en objekt fra klassen uden Constructor-funktion En klasse som den ovenstående ikke har en konstruktør-funktion (se senere). Når en klasse ikke har en konstruktør funktion, du instantiere et objekt fra det, der begynder med det reserverede ord, nye. Dette efterfølges af et mellemrum og derefter navnet på klassen, efterfulgt af parenteser. Ordet, nye er en operatør, som returnerer en reference til objektet oprettet (instantieret) på en region i hukommelsen.
Den returnerede henvises tildelt en variabel. Bemærk i ovenstående program, hvordan objektet, $ myObj instantieres. Normalt er det objekt, der udfører opgaven og ikke klassen. Du kan dog gøre klassen til at udføre din opgave, men det er ikke en god praksis. Den instantieres objekt har alle de egenskaber og metoder, at klassen blev instantieret fra, har. Klassen og instantieret objekt kan betragtes som to forskellige stykker kode i hukommelsen.
For at få adgang en ejendom eller en metode et instantieres objekt, du skriver navnet på objektet først, så pilen operatør og derefter navnet på ejendommen uden de $ skilt eller navnet på den metode. I ovenstående program, er det objekt $ myObj instantieret og derefter sin ejendom, er num1 gives værdien, 2 og dens ejendom num2 gives værdien 3. Du kan instantiere et andet objekt på samme måde giver det et andet navn og anderledes værdier for de samme egenskaber. Læs gennem ovenstående program grundigt og prøve det. Standard Ejendom Værdier En klasse kan have standard ejendom værdier.
For at opnå dette, skal du blot tildele værdier til de egenskaber som du definerer klassen. Enhver genstand instantieres fra denne klasse vil have værdierne automatisk tildelt til deres egenskaber. Du kan stadig ændre værdierne af de objektegenskaber, ved blot at tildele nye værdier. Nå, der giver standardværdier til en klasse, som jeg antydede tidligere er ikke en fælles praksis. Det foretrækkes at give værdier lige efter klassen er instantieret eller under instantiering (se senere).
Læs og prøv følgende program: class Cla {public $ num1 = "mand"; offentlig $ num2 = "kvinde"; offentlig funktion display () {echo $ this-> num1. " og " . $ this-> num2; }} $ Obj = new Cla (); $ obj-> display (); ?> Klasse Konstanter Ligesom standardværdier, kan du give konstante værdier for egenskaber for en klasse. Enhver genstand instantieres fra denne klasse vil have de egenskaber, konstant. Dette er forskelligt fra standardværdier i den forstand, at værdierne af egenskaberne i klassen og instantieres objekter ikke kan ændres.
For at opnå, at du bare gå forud variablen (ejendom) i definitionen klasse med det reserverede ord, konst. Her variablen, ikke tager de $ tegn, når det er erklæret, og når det anvendes. Læs og prøv følgende program; class Cla {const pi = 3,14; offentlig funktion display () {echo selv :: pi. "Som pi for denne klasse, og dens instantieres objekter kan ikke ændres."; }} $ Obj = new Cla (); $ obj-> display (); ?>