PHP og Classes- OOP del 1
ForordHer kan du lære lidt om OOP eller Objekt orinteret programmering i PHP. Denne del vil handle om Klasser eller nærmere betegnet. ClassesHusk allesammen at sige tak til spolit for ideen til at lave denne Artikel Velkommen til min artikel om Classes, som er en del af PHP-OOP Først og fremmest, vil jeg sige tak for ideen til at lave denne artikel, og også sige tak til dig som læser for at ville læse denne artikel Hvad er OOP OOP står for Objekt orinteret programmering -Stammer fra det engelske. Og tanken bag det er faktisk at bygge sit programmering op om et objekt. Der kommer Classes eller Klasser ind i billedet. Hvad er klasser Klasser er lidt lign. funktioner, bare meget nemmere og overskuelige at benytte. Lad os f.eks tænke os til vi ejer en Nintendo wii (Blær jer nu ikke jer som faktisk ejer en ;) ) Vi ved hvad der er uden på, kaldet indkapsling Vi ved hvad den bruges til kaldet Abstraktion men vi ved sikkert ikke hvad den er lavet af, og hvordan. På samme tid kan vi se, at Nintendo wii ejer nogle af de egenskaber nintendo 64 gjorde, dette kaldes Arv Disse 3 ting Indkapsling, Abstraktion, Arv Benyttes alle i daglidags ting, og også i objekter. Lad os komme igang Jeg vil nu vise jer et stykke kode af en Class. Bare rolig, jeg vil både løbende forklare men også bagefter.
Lidt forklaring Som i kan se opretter vi en klasse ved at bruge Class Navn { -Husk, at navnet på classes altid skal begynde med STORT inden i denne klasse definere vi variabler ved brug af "Var $variabelnavn" disse variabler kan bruges overalt i klassen. Efter det opretter vi vores funktioner, ( Funktioner inden i klassen, wow ) Inden i funktionerne, kan vi så sætte $pris variablen ved brug af $this->variabelnavn = $pris ( $this-> ) betyder simpelthen bare at det er inden i denne klasse. Uden for klassen, opretter vi så en ny instans af klassen som kan benyttes, dette gør vi med "$klassevariabelnavn = new klassenavn; herefter kører vi vores funktioner med $klassevariabelnavn->funktionsnavn Simpelt ikke? Nu har jeg givet jer en forklaring af hvordan klasser rent faktisk virker, så de næste eksempler jeg vil fremføre bliver der mindre forklaring ( Bare rolig forklaring bliver der ) men eftersom at det ligner hinanden burde i kunne forstå det hele.
Hurtig forklaring Som i kan se gør vi det samme som i sidste eksempel. denne gang har vi bare tilføjet en farve variabel. Vi sætter den ind i en ny data, og vis data funktion og gør så den også kan ændres, ikke det vilde der. Nu har vi lært at oprette funktioner, at bruge dem og at indsætte nye argumenter ( Variabler ) Nu vil jeg som det sidste vise jer hvordan i "arver" mellem klasser.
Hurtig forklaring I dette eksempel, opretter vi en klasse mere kaldet Nintendowii_opdatering. vi sætter den på at "extends Nintendowii" hvilket betyder at den skal arve alle funktioner og oplysninger fra klassen Nintendowii Derefter kan du sikkert, hvis du har læse hele artiklen igennem, se hvad den ellers gør. Nu vil jeg sige tak for denne gang igen igen. Hvis i har spørgsmål, ris eller ros er i velkomne til at sende en besked til mig. Og så skriv da lige lidt feedback The-Freaker |
|
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.
| Ingenious. Tak for artiklen, som, bortset fra et par få stavefejl, var meget nær perfekt. Det er et rigtig godt eksempel, du har valgt, og du forklarer det på en god måde. Fem herfra! |
Oprettet af:
|
|
FEDT! Du er god til at forklare! Det må jeg sige, godt lavet mester :).. |
Oprettet af:
|
| Flot lavet. Men slap dog af! med dine artikler ! :D Du er syg til at lave dem (; Flot arbejde! |
Oprettet af:
|
| Tak for det. Endelig er der en der kan forklare det, så jeg kan forstå det ... 5! |
Oprettet af:
|
|
Jeg har ikke læst den helt igennem men jeg vil sige at den først fejl jeg stødte på var at du slrev hvad OOP stod for.. det var egentlig ikke en så gal en fejl men du skruver objekt med stort o, og så vidt jeg ved så stå oop ikke for objekt, men Objekt Orienteret Programmering, som jeg sagde en mindre fejl.. Har ikke givet karakter endnu.. gør jeg når jeg har læst den færdig. |
Oprettet af:
|
|
Jeg har endnu ikke givet karakter, men det gør jeg, når jeg har skrevet dette indlæg. Det bliver nok 2-3/5, desværre. Da jeg begyndte at læse artiklen, tænkte jeg ordret "Det virker faktisk som om, han ved, hvad han snakker om," og det gør du bestemt, ingen tvivl om det. Du har lært en masse om visse aspekter i OOP, men du har udeladt en del. For eksempel synes jeg ikke det giver den mindste smule mening, at du i en så kort artikel udelader en så vital del af OOP: public, private og protected. Det er selvfølgelig ikke meningen, at man skal proppe en helvedes masse aspekter i OOP ind under én artikel, men OOP uden de 3 level modifiers er som en Nintendo Wii uden det der joystick. Derudover har du en fejl, som kunne forvirre nybegyndere indenfor OOP: Klasser behøver ikke, og har aldrig behøvet, og vil aldrig behøve, at starte med stort forbogstav. Til din forklaring af $this vil jeg sige både og. Men du kan godt have en variable i klasse1 og bruge $this på den i klasse2, hvis du bruger extends til at nedarve fra klasse1. Og selvom klasse2 så har arvet variablen fra klass1, så vil den jo originalt være placeret i klasse1. Så at sige, at $this er en pointer, der peger på det sted i hukommelsen, hvor alle klasse2's medlemmer ligger, vil nok være mere korrekt. Men hvis vi skal kigge på de ting, du rent faktisk har med i artiklen, så vil jeg også sige, du forklarer dig godt og din opstilling er udmærket. Dog forstår jeg ikke, hvorfor du har puttet forklaringer i citationsbokse, men pyt med det. Sidst redigeret 14:02 06/04/2008 |
Oprettet af:
|
|
Hej Dexo. Selføldig skal det ikke være med stort. Men plejer som hovederegl at sige "SKRIV den nu bare med stort" det blev jeg sparket i hovede og popoo med da jeg fik det lært. Sorry hvis det lyder somom den skal :) -Hvad angår Public, Private og Protected kan jeg godt se hvad du mener, og er klart en fejl at de ikke er med. Mener dog ikke at det er noget jeg bør sætte newbs ind i. Kan godt se jeg mangler lidt med $this. Også min fejl. Tak for kommentaren ;) der er noget at arbejde på |
Oprettet af:
|
|
Nu skal jeg lige se om jeg er med (har aldrig forstået OOP rigtigt) 1: en "class" er bare en samling af funktioner? 2: f.eks. "class bar extends foo {}" er en fortsætning af klassen "foo"? |
Oprettet af:
|
| Det er korrekt kaalakiota. |
Oprettet af:
|
