Gå til innhold

Deklarere en variabel for hele dokumentet


Anbefalte innlegg

På toppen av et php-dokument deklarerer jeg en variabel slik:

$variabel='tekst';

 

Og det virker jo fint. Helt til den skal brukes i en selvlaget funksjon (eksempel):

function funksjon(){
return $variabel;
}

 

Da får jeg at den ikke er deklarert.

 

Så hvordan kan jeg deklarere en variabel slik at alle funksjoner i hele dokumentet kan få tak i den?

 

 

Takk,

Degeim

Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+142

du kan jo se om define() e noe for deg...

 

PHP

<?

 

define("variabel""tekst");

define("VARIABEL""TEKST");

echo variabel;  // skriver ut "tekst"

echo VARIABEL; // skriver ut "TEKST"

 

?>

 

du kan og legge til et parameter til, hvis du vil at den ikke skal skille mellom store/små bokstaver når du kaller den..

 

PHP

<?

 

define("vArIaBEL""tekst"true);

echo variabel//skriver "tekst"

echo vArIaBEL//skriver "tekst"

echo VARIABEL//skriver "tekst"

 

?>

 

tror isåfall at dette skal virke som eg sier ;)

Endret av Slettet+142
Lenke til kommentar

PHP
<?php

$variabel 'tekst';

 

function test() {

global $variabel// Gjør det mulig å bruke $variabel i funksjonen

return $variabel;

}

 

test();

?>

eller

PHP
<?php

$variabel 'tekst';

 

function test() {

return $GLOBALS['variabel'];

}

 

test();

?>

 

Les mer her.

 

Edit: Litt sein. :blush:

Edit2: Ehh...limte inn feil på nr. 2 ja.

Endret av endrebjorsvik
Lenke til kommentar

Vel, takk for svarene. Jeg skal prøve litt, og se om define eller global er best for meg.

 

Men endrebjorsvik, jeg kan ikke si jeg ser noen forskjell mellom eksemplene dine... Er det bare jeg som overser noe, eller er det du som har oversett noe?

 

Degiem

Lenke til kommentar

Bortsett fra at global så og si aldri er en fin ting, den har et krav som er vanskelig å påtvinge.

define kan være greit, da den ihvertfall antyder at den er konstant, men beste løsning er å sende med en variabel til funksjonen, mener nå jeg.

Lenke til kommentar

Jeg sender variablene til funksjonene til vanlig, men akkurat denne variabelen (eller konstanten, som den er) gidder jeg ikke definere hver gang jeg trenger den, og heller ikke bruke "verdifull" plass på å sende den videre til hver eneste funksjon.

 

Derfor har jeg funnet ut at define ser ut til å være best.

 

 

Takk for all hjelp!

Lenke til kommentar
Bortsett fra at global så og si aldri er en fin ting, den har et krav som er vanskelig å påtvinge.

define kan være greit, da den ihvertfall antyder at den er konstant, men beste løsning er å sende med en variabel til funksjonen, mener nå jeg.

7005875[/snapback]

Hvorfor det? PHP er vel det hittil eneste programmeringsspråket jeg har vært innom hvor globale variabler ikke automatisk er en del av funksjoner, klasser etc. noe jeg synes er til tider meget problematisk. Er det liksom en oppfordring til å ha ørten parametere i funksjonene? Skal alle klasser definere en variabel internt som settes lik en "global" variabel man får inn i konstruktor? Hva skal man egentlig med globale variabler hvis man ikke kan hente de uhemmet inn i funksjoner, klasser etc.?

Lenke til kommentar

Hva skjer når du flytter funksjonen din over til et nytt prosjekt, som kanskje ikke har den helt store sammenhengen med det prosjektet der du skrev funksjonen? Plutselig definerer den ikke de samme globale variablene, må du plutselig skrive om funksjonen da?

Jeg liker ihvertfall å skrive kode som er så uavhengig som mulig, hva andre foretrekker er jo selvsagt en smakssak, men etter min mening er globale variable en unøvendighet.

 

Så svaret er "ja", alle klasser som har behov for en global variabel og bruker denne i flere metoder, burde kreve denne i konstruktøren og sette den internt. Dermed elimineres behovet for den globale variabelen.

(Muligens litt knotete forklart, men resultatet er at du ikke har en global variabel, men en variabel som sendes via flere ledd)

Lenke til kommentar

Vel, det er klart det er en fordel hvis funksjonene skal flyte rundt mellom flere prosjekter, men som regel koder man gjerne helst mot det ene prosjektet. Å ha ørten parametere i funksjoner er langt fra bra etter min mening. Man mister liksom veldig lett oversikten, og det ikke optimalt det heller. Mange parametere gjør at det blir veldig mye som må skrives hver gang funksjonen skal brukes, og det er unødvendig hvis enkelte parametere alltid har samme verdi. Da synes jeg at man faktisk bør holde seg til globale variabler. For ordensskyld kan man jo skrive øverst hvilke man bruker (i PHP er jo det lett siden man MÅ bruke global ... ; )

 

En liten ting man kan merke seg er at funksjoner ikke er objekter eller uavhengige. Hvorfor skal man da tenke på de som det? :huh:

Endret av Ernie
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...