Kom ihåg mig?
Home Menu

Menu


Array vs. Class

Ämnesverktyg Visningsalternativ
Oläst 2010-05-02, 17:51 #1
linus1 linus1 är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 70
linus1 linus1 är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 70
Question Array vs. Class

Hej!

Jag har hållt på och programmerat i PHP i ett antal år nu och programmerat både större och mindre applikationer.

MEN jag har aldrig förstått användningen av klasser?

Jag har googlat och sökt på det i det oändliga men tycker mig inte se några fördelar med det eller hur det ens ska fungera?

Kan någon snäll själ förklara för mig användningsområdena för klasser och vad är det för skillnad på användningsområde emot Arrays??

(eller länka till en bra guide för klasser)

Mycket tacksam för svar!!!
linus1 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-02, 22:48 #2
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Gosh, då har du mycket kvar att upptäcka!

Arrayer ock klasser är inte jämförbara.

Har du använt structurer elelr om du har "grupperat" variabler så att du har haft behov av att skapa en grupp av variabler för att hålla information som "hör ihop" som exempelvis uppgifter om "personer" eller "företag" eller "kunder" så inser du säkert att varje grupp av variabler består av flera variabler som exempelvis Namn, adress, personnummer för personer.

I en klass kan man hålla ihop dessa variabler så du kan hantera alla variablerna i en klump om de hör ihop.

Man kan även göra listor av klasser om man vil hantera fler instanser av samma klass.

I en klass kan man även ha metoder som är specifika för just den klassen. Man kan även dölja de interna variablerna och tvinga användaren av klassen (dvs programmeraren) att använda metoder för att ändra innehållet. det gör att den som skriver koden för klassen har bättrre kontroll på hur klassen används. Inkapsling kallas det för.

Källa: http://www.webbdesign.info/server_si...ientering.html

http://www.tuxradar.com/practicalphp/6/0/0

Senast redigerad av Conny Westh den 2010-05-02 klockan 23:17
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-02, 23:04 #3
studiox studiox är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2004
Inlägg: 1 356
studiox studiox är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2004
Inlägg: 1 356
Skulle rekommendera en bok om objektorienterat programmering, det är en bra och trevlig början.
studiox är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-02, 23:13 #4
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
Du kan inte riktigt jämföra en Array med en Klass. Du kan dock jämföra en Array med ett Objekt. Ett Objekt är alltså en instans av en Klass.

Det finns en inbyggd klass i PHP som heter stdClass, den har användningsområden likt en Array. Alltså något som du mer eller mindre använder för att förflytta data med. Exempel:

Kod:
$obj = new stdClass();
$obj->name = 'Karl';
$obj->age = 16;

echo $obj->name.' är '.$obj->age.' år';
Vilket skulle motsvara...
Kod:
$arr = array();
$arr['name'] = 'Karl';
$arr['age'] = 16;

echo $arr['name'].' är '.$arr['age'].' år';
Båda dessa skriver ut exakt samma sak.

När man pratar om OOP (Object Oriented Programming, Objekt Orienterad Programmering på svenska) så brukar det dock inte vara detta. Att använda Objekt är helt enkelt att strukturera upp din applikation.

Exempelvis: allt som har med A att göra hamnar i klass A. Allt som har med B att göra hamnar i klass B. Klass C har samma grundfunktionalitet som kass B och förlänger därför klass B.

Förklaring med lite kod:

Kod:
class Klass_B
{
public function do_something()
{
echo 'I did something!';
}
}

class Klass_C extends Klass_B
{
public function do_something_more()
{
echo $this->do_something().' And then I did something more!';
}
}

$obj = new Klass_C;
$obj->do_something_more();
Det där skulle alltså skriva ut "I did something! And then I did something more!". Orkar inte riktigt förklara allting, det här har redan blivit ett ganska långt inlägg. OOP är väldigt abstrakt men när du väl har lärt dig så underlättar det väldigt mycket när du utvecklar.

För att runda av så ger jag dig några bra video tutorials i ämnet:
http://www.killerphp.com/tutorials/object-oriented-php/

Lycka till!
KarlRoos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-03, 05:22 #5
taz76 taz76 är inte uppkopplad
Flitig postare
 
Reg.datum: Jan 2008
Inlägg: 388
taz76 taz76 är inte uppkopplad
Flitig postare
 
Reg.datum: Jan 2008
Inlägg: 388
OOP är dessutom utmärkt om man delar upp koden i olika lager där ett lager kan hantera databasfunktioner endast vilket ger stora fördelar om endast något i databaskoden behöver förändras.
taz76 är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 23:29.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017