OOP Basics i PHP Objektorientert programmering i PHP - Del 1 Innledning Dette er del 1 av min serie, objektorientert programmering i PHP. OOP står for objektorientert programmering. I denne delen av serien ser vi på PHP OOP grunnleggende. Merk: Hvis du ikke kan se koden, eller hvis du tror noe mangler (ødelagt kobling, bilde fraværende), bare kontakte meg på [email protected]. Det er, kontakt meg for den minste problemet du har om hva du leser. Forutsetning Det er andre artikler (tutorials) jeg har skrevet i denne bloggen på PHP.
Du må ha lest dem eller liknende varer, før du leser denne serien. Titlene på artiklene i denne bloggen, som er forutsetning for å lese denne serien er: - Kom i gang med PHP - Variabler som synonymer i PHP - Utland og funksjon Variable Scope i PHP - Noen Scalar datatyper i PHP En dataspråket bygger opp. Det er visse ting du må lære først og deretter bruke dem til å lære høyere ting. Hver av de ovennevnte titlene er enten en opplæringen eller den første opplæringen i en serie. Hvis det er første del av en serie, så du burde ha lest hele serien.
Hvis det er en tutorial stående alene, så du burde ha lest veiledningen. For å nå noen av artiklene, bare skriv inn tittelen på artikkelen og navnet mitt Chrys i søkeboksen på denne siden og klikk Søk. Innledningen Når du har et sett av variabler og funksjoner som fungerer sammen, og vil vises i mange deler av koden din, kan du sette alt i en generalisert enhet, kalt en klasse. Det vil ikke være behov for gjentakelse typing av settet. I denne opplæringen, vi snakker om et sett av variabler og funksjoner. Settet av variabler og funksjoner danne en klasse, hvis samlet på en spesiell måte.
Funksjonene arbeide med verdiene av variablene. Under denne tilstand, er det mulig at verdiene av variablene og resultatene av de tilhørende funksjoner kan endres. For å kunne bruke klassen etter at det har blitt definert, må du opprette en tilsvarende enhet fra klassen, alt er likt. Den bestemte enhet som kalles en gjenstand. I denne delen av serien, jeg gir deg grunnleggende forklaring av PHP klasser og deres objekter. Du bør lese denne serien i den rekkefølgen gitt; det vil si, begynner du med del 1, så del to, så del 3 og så videre.
Gruppe av variabler og funksjoner La oss vurdere en gruppe av variabler og funksjoner som ville fungere som en generalisert enhet. Les og prøv følgende kode og merk at det returnerer summen av 2 og 3. $ num1 = 2; $ num2 = 3; funksjonen add ($ no1, $ NO2) {$ sum = $ no1 + $ no2; returnere $ sum; } $ Resultat = legge til ($ num1, $ num2); echo $ resultat; ?> Du har to variabler (num1 og num2) og en funksjon (legg). I koden, funksjonen kalles, og den returnerte summen holdes i variabelen, resultat. Resultatet sendes til utgang (nettleser).
Nå koden ovenfor summerer to spesielle tall, som er 2 og 3. Du ønsker et stykke kode som summerer to tall, ikke bare 2 og 3. En mulighet er å inkludere en annen funksjon som skulle få de to tallene, endre verdier av de to variablene, og deretter ringe tillegget ($ no1, $ NO2) -funksjonen. Det er en annen mulighet, som har blitt svært populært med årene; det er å lage en klasse, og deretter opprette et objekt fra klassen som ville legge noen to spesielle tall. En klasse er en generalisert enhet av kode, fra hvilke ting kaller objekter kan bli opprettet for å gjøre bestemte oppgaver.
Et objekt kalles forekomst av en klasse. Merk: I koden ovenfor de to variablene ($ num1 og $ num2) og funksjon (legg ()), arbeider sammen. Det er derfor det er tilrådelig å ha de to variablene og funksjonen i en enhet kalt en klasse. Klasse A-klassen er en generalisert enhet (definisjon) fra hvilke objekter som kan startes (opprettet). En klasse er i utgangspunktet en kodeenheten som har variabler og funksjoner som fungerer sammen. Variablene kalles egenskaper og funksjonene kalles metoder.
En klasse kan løse et problem (utføre en oppgave), men det er som regel ikke tilrådelig for en klasse for å løse et problem. Det er et formål opprettet fra en klasse som er forventet til å utføre en oppgave (løse et problem); ikke klassen. Når du oppretter et objekt fra en klasse, sier vi du Instantiating objektet. En variabel av klassen kalles en egenskap av klassen. En funksjon av klassen kalles en fremgangsmåte av klassen. Egenskaper av en klasse blir også kalt dataelementer (av klassen). En gjenstand laget av en klasse har samme egenskaper og metoder som klassen.
En klasse og objekt skapt fra ovenstående kode Koden ovenfor kan konverteres til en klasse og objekt som følger: class Kalkulator {public $ num1; offentlig $ num2; offentlig funksjon add () {$ sum = $ this-> num1 + $ this-> num2; returnere $ sum; }} $ MyObj = new Kalkulator (); $ myObj-> num1 = 2; $ myObj-> num2 = 3; $ resultere = $ myObj-> legge til (); echo $ resultat; ?> Du definerer en klasse begynner med det reserverte ordet, klasse. Da har du et mellomrom og deretter følger det med navnet på klassen. Du valgte det navnet du ønsker å gi for klassen.
Jeg har gitt navnet Kalkulator fordi klassen gjør noen beregning. Etter klassenavnet, har du et par av klammeparentes. Det er uttalelser og blokker inne i klammeparentes. Alle uttalelser for klassen går på innsiden av bukseseler. Det er vanlig å skrive variablene før funksjonene. Variablene i klassen kalles egenskaper og funksjoner i klassen kalles metoder. I definisjonen av en grunnleggende klasse som den ovenfor, setter du egenskapene og metodene med det reserverte ordet, offentlig. Variablene og funksjonen vi hadde i forrige program er de samme variablene og funksjon vi nå har i klassen.
Inne i en metode (funksjon) definisjon i en klasse definisjon, for å få tilgang til en eiendom, begynner du med den forhåndsdefinerte variable, $ dette. $ betyr klassen eller et objekt som har fremgangsmåten. Etter å ha skrevet $ dette, skriver du pilen operatør ->. Etter at du skriver inn navnet på eiendommen (variabel) uten $ tegn. Les gjennom beskrivelsen av klassen over for å sette pris på hvordan en klasse er definert. Under normale omstendigheter, erklærer du egenskapene i en klasse, og du trenger ikke initialisere dem.
Det er derfor i de ovennevnte klasse, num1 og num2 ikke har noen verdier tillagt dem. Det er en vanlig praksis. Du kan fortsatt tildele verdier til egenskapene hvis du vil, som du ville gjort til variabler utenfor klassen. Det er det som kalles konstruksjonsfunksjonen som kan brukes til å tildele opprinnelige verdier med dem som et objekt blir opprettet (instansiert) fra klassen (se senere). Merk: Det er vanlig å begynne navnet på en klasse med en stor bokstav og navnet på et objekt med en liten bokstav.
Opprette et objekt fra klassen uten Constructor funksjon En klasse som den ovenfor ikke har en konstruktør funksjon (se senere). Når en klasse ikke har en konstruktør funksjon, instantiate du et objekt fra det, begynner med det reserverte ordet, ny. Dette etterfølges av et mellomrom og navnet på klassen, etterfulgt av parenteser. Ordet, ny er en operatør, som returnerer en referanse, til objektet laget (instansiert) på et område i hukommelsen. Den returnerte henvisning tilordnes en variabel. Legg merke til i det ovennevnte programmet hvordan objektet, $ myObj er instansiert.
Normalt er det objektet som utfører oppgaven og ikke klassen. Du kan imidlertid gjøre klassen til å utføre oppgaven, men det er ikke en god praksis. Den startes objekt har alle egenskapene og metodene at klassen ble det startes fra, har. Klassen og instansiert objekt kan betraktes som to forskjellige deler av koden i minnet. Å få tilgang til en eiendom eller en metode for en instansiert objekt, skriver du inn navnet på objektet først, deretter på pilen operatør og deretter navnet på eiendommen uten $ skilt eller navnet på metoden.
I ovennevnte program, er objektet $ myObj instansiert og deretter sin eiendom, er num1 gitt verdien, 2 og dens eiendom num2 er gitt verdien 3. Du kan bruke et annet objekt på samme måte gi den et annet navn og annerledes verdier for de samme egenskapene. Les gjennom de ovennevnte programmet grundig og prøve det. Standard Eiendom Verdier En klasse kan ha standardeiendomsverdier. For å oppnå dette, må du bare gi verdier til egenskapene som du definerer klassen. Enhver gjenstand instansiert fra at klassen skal ha verdiene automatisk tildelt sine eiendommer.
Du kan fortsatt endre verdiene for objektegenskapene, bare ved å tildele nye verdier. Vel, som gir standardverdiene i en klasse som jeg antydet tidligere er ikke en vanlig praksis. Det er å foretrekke å gi verdier på samme måte etter at klassen er instansiert eller under oppretting (se senere). Les og prøv følgende program: class Cla {public $ num1 = "mann"; offentlig $ num2 = "kvinne"; offentlig funksjon display () {echo $ this-> num1. " og " .
$ this-> num2; }} $ Obj = new Cla (); $ obj-> display (); ?> Klasse konstanter Som standardverdiene, kan du gi konstante verdier til egenskapene til en klasse. Enhver gjenstand instansiert fra at klassen vil ha de egenskaper, konstant. Dette er forskjellig fra standardverdier i den forstand at verdiene for egenskapene i klassen og instansiert objekter ikke kan endres. For å oppnå at du bare gå foran variabelen (eiendom) i klassen definisjonen med det reserverte ordet, konst. Her er den variable, tar ikke tegnet $ når den er definert, og når den brukes.
Les og prøv følgende program; klasse Cla {konst pi = 3,14; offentlig funksjon display () {echo selv :: pi. "Som pi for denne klassen og dens instansiert objekter kan ikke endres."; }} $ Obj = new Cla (); $ obj-> display (); ?>