Gå til innhold

[Løst]Hvordan sette en variabel global?


Anbefalte innlegg

Skrevet (endret)

Hei! Jeg ønsker å sette en variable globalt, på link linje med $_GET, $_POST osv. Slik at den kan nås inni funksjoner uten å måtte bruker global $var eller $GLOBALS['var']. Noen som vet hvordan?

Endret av pulse
Videoannonse
Annonse
Skrevet (endret)

Du bruker global for å hente de inn i funksjoner etc. F.eks.:

$var = 1;
function funksjon()
{
global $var;
$var++;
}
funksjon();
echo $var;

Dog, bruk av globale variabler i funksjoner etc. er litt fy-fy.

Endret av Ernie
Skrevet
Du bruker global for å hente de inn i funksjoner etc.

Som jeg sa i første posten, hvorden setter jeg en variabel global sånn at jeg -ikke- må bruke global eller lignende for å hente den inn...

Skrevet

Ehhh ... kanskje en ide å lese posten litt nøyere først :blush: Vel, slik variable scope i PHP er bygget opp er det ikke mulig. Det kan nok ha litt med at globale variabler i funksjoner er fy-fy i og med at det medfører mindre lesbar kode.

Skrevet
Ehhh ... kanskje en ide å lese posten litt nøyere først :blush: Vel, slik variable scope i PHP er bygget opp er det ikke mulig. Det kan nok ha litt med at globale variabler i funksjoner er fy-fy i og med at det medfører mindre lesbar kode.

Var det jeg var redd for, har googlet og søkt mye, uten å finne noe svar jeg øsnket. Så da sitter jeg igjen med to alternativer:

1. Bruke konstanter istedetfor

2. Sette variablen som en del av arrayet $_SERVER

 

Så da er vel saken egentlig løst.

 

Takker :)

Skrevet
3. Eller revurdere hele systemet.

Tja.. Har du gode forslag?

 

Her er saken: Jeg bruker en htaccess for å redirecte alle requests mot en index fil.

 

La oss si adressen er http://mittdomene.no/~brukernavn/side/

 

Jeg trenger denne adressen for å f.eks legge til css/default.css

 

Jeg ønsker ikke å hardkode den på noen måte da jeg skal kunne kopiere alle filer enkelt og greit andre steder.

 

Så jeg ønsker å ha denne tilgjengelig på lik måte overalt sånn at det er lettere å kopiere kode fra ett sted til ett annet, inn og ut av funksjoner, klasser osv.... Denne verdien er jo konstant for hele scriptet, alltid. Hvorfor burde det revurderes? Er det ikke slikt konstanter er til for?

Skrevet

Du kan bruke en klasse med statiske variabler, da kan de nås over alt.

class G
{
public static $v;
}
G::$v = 'Hallo!';

function f()
{
echo G::$v;
}

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...