Omkring klasser i PHP
|
For ord Hej. Jeg vil i dag fortælle om klasser. Som i nok ved, er klasser en del af programmeringsmåden OOP. OOP er en ny ”trend”, indenfor programmering. De fleste programmører har efterhånden vendt sig til måden. Og ja, jeg bruger det også selv. Obs.: Klasser er ikke OOP, kun en del af det. Her er et par punkter for, hvorfor du skal benytte OOP: - Det gør det lettere for dig at holde styr på data, ændre og slette ting i din klasse. - Det er let at udbygge sit script, ikke skrive det om, bare udbygge. Du kan herunder se hvilke punkter jeg vil gennemgå i denne artikel. 1. Klassens opbygning 1.1 Nøgleordene extends, final og parent 2. Variabler i klassen 2.1 De tre gyldne p’er 3. Funktioner i klassen 3.1 Nøgleordet final 4. Konstruktøren/Destruktøren 5. Parent, self 6. Et færdigt script 7. Slutning Obs. Eventuelle stavefejl skal du ikke tage dig af.. 1. Klassens opbygning For at starte en klasse, bruger vi nøgleordet class, efterfulgt at navnet på vores klasse. Her er et eksempel:
I det næste eksempel, vil jeg vise hvordan klassen egentlig er opbygget.
1.1 Nøgleordene extends, final og parent I dette afsnit, vil jeg prøve at forklare dig hvad nøgleordene extends og final gør. Extends Extends er det nøgleord du skal bruge, hvis du vil nedarve fra en anden klasse. Eksempel:
Når vi bruger extends, kan vi benytte variabler og funktioner fra den klasse vi nedarver fra. Dette kan gøre ved at enten bruger nøgleordet parent (mere senere) eller navnet på klassen, efterfulgt af to semikoloner ( :: ) også navnet på funktionen/variablen. Final Final har den funktion at gøre så klassen/funktionen/variablen ikke kan overskrives. Eksempel:
- Normalt ville php bare overskrive klassen/funktionen/variablen. 2. Variabler i klassen I en klasse, kan man definere hvilke variabler der kan benyttes i klassen. Eksempel:
Men.. 2.1 De tre gyldne p’er De tre gyldne p’er: Public Protected Private - Public: Alle kan tilgå variablen/funktionen. Som standard i PHP, er alle ting public. Men hvis du bare har skrevet:
- Protected: Klassen som variablen/funktionen er deklareret i, og klasser som nedarver fra den klasse, kan benytte variablen/funktionen. - Private: Kun klassen som variablen/funktionen er deklareret i, kan benytte variablen/funktionen. Info: Det er en god ting at bruge private, i funktioner/variabler, som du bruger i konstruktøren 3. Funktioner i klassen Som du nok ved, består en klasse af mange funktioner. Jeg vil ikke komme så meget ind på det, da du højst sandsynligvis ved hvad funktioner er. Men også her, findes de 3 gyldne p’er.
3.1 Nøgleordet final Det er blevet beskrevet før, så jeg citerer: Final har den funktion at gøre så klassen/funktionen/variablen ikke kan overskrives. Eksempel:
4. Konstruktøren/Destruktøren Konstruktøren er en funktion i klasser, som selv starter klassen. Fra PHP5+ behøves konstruktøren ikke at hedde det samme som klassen, men __construct - Konstruktøren og Destruktøren sættes altid i public. Eksempel:
Eksempel:
Jeg starter klassenJeg slutter klassen En smart ting at brugt __destruct() til er eksempelvis at bruge den til at lukke mysql (mysql_close()). Da den jo først bliver afviklet til sidst i klassen. 5. Parent, self Parent og self er nøgleord til at hente data fra klasser. Ligesom $this pointeren, det virker bare på en anden måde. - Parent: Er et nøgleord, du skal bruge når du henter fra en klasse du nedarver fra - Self: Er et nøgleord, du kan bruge når du henter fra klassen du befinder dig i. Obs.: Husk at sætte 2 semikoloner efter nøgleordene, ellers melder de fejl. Her er et eksempel med self:
6. Et færdigt script Her er et simpelt script i klasser. Det gør så vi kan sætte $saetning i vores klasse, også udskrive den.
Men leg lidt med det. 6. Slutning Her til slut vil jeg bare sige, at jeg håber i har nydt artiklen, og lært noget af den. Måske skriver jeg en anden en. Om abstrakte klasser, og instance. Men jeg mente ikke at det skulle med i denne omgang. Held og lykke med klasserne! Mikkel Olsen //out Sidst redigeret 16:23 - 22/10/2006 |
|
Kommentarer
Giv din mening tilkende om denne artikel, eller læs andres.Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
| Ingen kommentare? |
Oprettet af:
|
|
Det ser godt ud :) Jeg vil ikke vote da jeg ikke forstår mig på php men vil da i det mindste sige at ud fra udseendet og omfanget ser det rigtig godt ud :D Grunden til at jeg har valgt at skrive når jeg nu ikke forstår mig på php er at jeg mener at folk her i forummet er for sløve til at skrive kommentarer. Jeg mener at bare det at man har kigget på artiklen og brugt noget af indholdet gør at man bør skrive en lille kommentar. Selv hvis man ike fatter noget af det ;) Hvis bare folk her på siden gad vise at de har interesse i det arbejde man har lavet og muligvis brugt lang tid på kunne det være at flere brugere ville begynde på at skrive artikler... :P |
Oprettet af:
|
| Hvad skal man bruge sådan en "class" til? :S Forstår ikke rigtigt meningen i at bruge den.. |
Oprettet af:
|
|
Anonym -> Der står lidt omkring det i artiklen. Ellers vil jeg henvise til www.udvikleren.dk. |
Oprettet af:
|
| Den er da god :) 3/5 |
Oprettet af:
|
|
Kun 3/5? Hvad er det du ikke forstår i den? |
Oprettet af:
|
| god artikel, men syntes det virker lidt "åndsvagt" at man skal lave så meget kode i det i forhold til almindelig php kodning.. kan godt være det bare er mig? :P |
Oprettet af:
|
| Det forstår jeg godt du siger Spolit, det er også rigtigt, men hvis du fx. arbejder på et meget stort projekt, så kan du med meget mindre kode end "Normal" php kode udføre visse ting, hvis du gør brug af OOP. |
Oprettet af:
|
| okay, tak for svaret dexo-fan (: |
Oprettet af:
|
| Altid dejligt at lære noget nyt :) |
Oprettet af:
|
Side af 2
