loathsome Skrevet 26. januar 2008 Rapporter Del Skrevet 26. januar 2008 (endret) Hei, Hvordan kan jeg gjøre noe slikt?: class diskusjon { private $user = 'loathsome'; const template = $this->user; } print diskusjon::template; Hvorfor får jeg ikke brukt variabler i konstanter? Takk for svar. Endret 26. januar 2008 av loathsome Lenke til kommentar
grimjoey Skrevet 26. januar 2008 Rapporter Del Skrevet 26. januar 2008 (endret) nettopp fordi en konstant er en konstant verdi og en variabel er en variabel verdi. du kan gjøre det du skriver så lenge du ikke definerer "template" som const. mulig du må instansiere klassen og, ettersom du bruker $this som referanse. $d = new diskusjon; print $d->template; Endret 26. januar 2008 av grimjoey Lenke til kommentar
loathsome Skrevet 26. januar 2008 Forfatter Rapporter Del Skrevet 26. januar 2008 Men hva om jeg skal sette en konstant EN gang (brukerdefinert), så skal den holde seg konstant igjennom hele klassen? Takk for svar. Lenke til kommentar
grimjoey Skrevet 26. januar 2008 Rapporter Del Skrevet 26. januar 2008 (endret) tror ikke det er så lett å få til. kan du forklare i praksis hva du trenger dette til så kan jeg komme med en alternativ metode. skal du ha en verdi som er brukerdefinert og tilgjengelig i alle instanser av en klasse kan du: class diskusjon { public $template; } $diskusjon = new diskusjon; $diskusjon->template = 'loathsome'; $a = clone $diskusjon; $b = clone $diskusjon; $c = clone $diskusjon; Endret 26. januar 2008 av grimjoey Lenke til kommentar
luxus Skrevet 26. januar 2008 Rapporter Del Skrevet 26. januar 2008 (endret) skal du ha en verdi som er brukerdefinert og tilgjengelig i alle instanser av en klasse kan du: ..Det høres veldig ut som en static variabel. class EnKlass { public static $var = "hei"; public funciton getStatic() { return self::$var; } } $a = new EnKlasse(); $b = new EnKlasse(); print ($a->getStatic()); // -> hei print ($b->getStatic()); // -> hei $var kan settes enten via EnKlasse::$var = "på deg"; .. eller ved å lage en setter funksjon eller liknende. Hvis du vil at den skal bare være mulig å settes en gang kan du definere den som privat, definere en setter funksjon som sjekker om den er satt, og bare setter den hvis den ikke er satt til noe fra før. Da kan man i det minste ikke sette verdien utenfor klassen. Endret 26. januar 2008 av luxus Lenke til kommentar
loathsome Skrevet 26. januar 2008 Forfatter Rapporter Del Skrevet 26. januar 2008 Ah, takker begge to Dette oppklarer en hel del. Ha en fin lørdagskveld Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå