fgr Skrevet 19. august 2010 Del Skrevet 19. august 2010 kom over et merkelig problem, alltid trodd at variabler var globale i php og kunne refereres til fra en funksjon. må man virkelig bruke define for å definere noe for bruk i en funksjon? <?php define("LANG", "SUPER"); $lang = "SUPER"; function write() { echo LANG."FETT HÅR<br>"; // SUPERFETT HÅR echo $lang."FETT HÅR"; // FETT HÅR } write(); ?> Lenke til kommentar
xibriz Skrevet 19. august 2010 Del Skrevet 19. august 2010 Du kan definere globale variabler slik: <?php global $lang; $lang = "SUPER"; function write() { global $lang; echo $lang."FETT HÅR<br>"; // SUPERFETT HÅR } write(); ?> Eller globale variabler i en klasse slik <?php class minKlasse { private $lang = "SUPER"; function write() { echo $this->lang."FETT HÅR<br>"; // SUPERFETT HÅR } } $minKlasse = new minKlasse(); $minKlasse->write(); ?> Lenke til kommentar
fgr Skrevet 19. august 2010 Forfatter Del Skrevet 19. august 2010 ok takker. jeg prøvde meg på global $lang = "SUPER"; men det var feil syntax det ja.. Lenke til kommentar
xibriz Skrevet 19. august 2010 Del Skrevet 19. august 2010 ok takker. jeg prøvde meg på global $lang = "SUPER"; men det var feil syntax det ja.. Ja, du må definere variabelen som global før du kan tilordne den en verdi Lenke til kommentar
BlueEAGLE Skrevet 22. august 2010 Del Skrevet 22. august 2010 En av hovedgrunnene til at man bruker funksjoner er jo at man holder kodedelene adskilt og unngår tilfeller der $variabelnavn i en funksjon ved et uhell overskriver $variabelnavn i en annen del av programmet. Den riktige(ste) måten å sende verdier mellom funksjoner og hoveddel av programmet er ved å bruke argumenter: function write($tekst) { echo $tekst."FETT HÅR!"; } write('SUPER'); Lenke til kommentar
xibriz Skrevet 23. august 2010 Del Skrevet 23. august 2010 En av hovedgrunnene til at man bruker funksjoner er jo at man holder kodedelene adskilt og unngår tilfeller der $variabelnavn i en funksjon ved et uhell overskriver $variabelnavn i en annen del av programmet. Den riktige(ste) måten å sende verdier mellom funksjoner og hoveddel av programmet er ved å bruke argumenter: function write($tekst) { echo $tekst."FETT HÅR!"; } write('SUPER'); Men det var vel ikke dette som var spørsmålet? Uansett, en global variabel vil aldri tilfeldigvis bli overskrevet inne i en funksjon da den må hentes inn med "global $variabelnavn". Lenke til kommentar
BlueEAGLE Skrevet 23. august 2010 Del Skrevet 23. august 2010 Men det var vel ikke dette som var spørsmålet? Nei, det var ikke det som var spørsmålet, men strengt tatt så er det nøyaktig det spørsmålet burde ha vært. 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å