Gå til innhold

OOP: Bruke variabler når jeg definerer en konstant. [løst]


Anbefalte innlegg

Videoannonse
Annonse

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 av grimjoey
Lenke til kommentar

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 av grimjoey
Lenke til kommentar
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 av luxus
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...