FAQ |
Kalender |
2009-06-23, 11:50 | #1 | ||
|
|||
Flitig postare
|
Okej, kort fråga.
Vad är det för skillnad på nedanstående exempel? Kod:
class makeDate{ var $Rawdate; var $Date; var $Format; var $Language; var $Timestamp; function makeDate(){ *//Default settings *$this->Rawdate = date('YmdHis'); *$this->Format = 'Y-m-d H:i'; *$this->Language = 'sv'; } } Kod:
class makeDate{ var $Rawdate *= date('YmdHis');; var $Date; var $Format = 'Y-m-d H:i'; var $Language = 'sv'; var $Timestamp; } Är det fel att sätta standard värden utanför som i exempel 1? Vad ska man ha "constructor" funktionen till? Tack! |
||
Svara med citat |
2009-06-23, 12:00 | #2 | ||
|
|||
Flitig postare
|
Nej, jag tror inte det är fel att sätta värden direkt. Du kan även göra det utanför klassen.
Exempel: Citat:
Citat:
Constructor funktionen är det första som anropas i objektet, vad du ska ha den till är upp till dig |
||
Svara med citat |
2009-06-23, 13:00 | #3 | ||
|
|||
Klarade millennium-buggen
|
Citat:
I PHP5 så är det felaktigt, där skall man använda __construct() (och det finns även en __destruct() som körs när scriptet är klart) |
||
Svara med citat |
2009-06-23, 13:36 | #4 | ||
|
|||
Medlem
|
Citat:
Att sedan instansiera variabler i konstruktorn istället för direkt som privata fält har nog ingen större skillnad prestandamässigt sett. Dock kan det ju vara en fördel att ha instansieringen (ursprungsvärdena) i konstruktorn om man behöver "nollställa" instansen, eller om man använder sig av statiska fält som skall ändra värde när fler instanser skapas upp. |
||
Svara med citat |
2009-06-23, 13:53 | #5 | ||
|
|||
Medlem
|
Jag tycker det är bra att sätta eventuella defaultvärden direkt när man skapar klass-variabeln.
Konstructorn har ju däremot ofta tillgång till någon form av indata och med hjälp av den kan man uppdatera defaultvärdena man satt om det behövs och sätta andra variabler med hjälp av indatan. |
||
Svara med citat |
2009-06-23, 14:45 | #6 | ||
|
|||
Flitig postare
|
tack.
Vad är det för mening med private och dylikt? |
||
Svara med citat |
2009-06-23, 15:04 | #7 | ||
|
|||
Flitig postare
|
Private kan bara anropas inom klassen, inte utifrån dvs.
|
||
Svara med citat |
2009-06-23, 15:12 | #8 | ||
|
|||
Medlem
|
du har public, private och protected att välja på.
public går som namnet antyder att kalla på var som helst ifrån egentligen private går bara att kalla på från den aktuella klassen protected går att kalla på från den aktuella klassen och klasser som ärver från den protected brukar jag använda för det mesta. |
||
Svara med citat |
2009-06-23, 15:20 | #9 | ||
|
|||
Medlem
|
Citat:
|
||
Svara med citat |
2009-06-23, 16:56 | #10 | |||
|
||||
Medlem
|
Här finns liten snabbuppdatering för PHP5 och klasser: Introduktion till PHP5
|
|||
Svara med citat |
Svara |
|
|