/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
externe variabler i funktioner?
Fra : Ukendt


Dato : 21-12-02 00:47

Hejsa gruppe

Jeg har en masse variabler på i en php fil
De variabler vil jeg så gerne have ind i mine funktioner UDEN brug af
globals, kan det overhovedet lade sig gøre?
Eller er der en anden måde jeg skal gribe an på ?

eksempel:

<?php
// Variabel side
$lang_language = "Dansk";
$lang_showall = "Vis alle";
/*
......
Plus et par 100 stykker mere
*/
?>

<?php
// funktion side
function Common_header($side) {
blablablabla
print $lang_language;
}
?>

 
 
Allan E (21-12-2002)
Kommentar
Fra : Allan E


Dato : 21-12-02 01:39

"-Martin-" <martin_aarhof(AT)hotmail.com> wrote in message
news:fpa70vk755iedrsq69eoek7et6r7aco1e8@4ax.com...
> Jeg har en masse variabler på i en php fil
> De variabler vil jeg så gerne have ind i mine funktioner UDEN brug af
> globals, kan det overhovedet lade sig gøre?
> Eller er der en anden måde jeg skal gribe an på ?

Nu er det jo netop det vi har globals til, men du kunne evt, i stedet for at
have et hav af selvstændige variable lave et array, med alle variable i, og
så gøre det globalt.
Blot et forslag...

Fx
$lang['language'] = "Dansk";
$lang['showall'] = "Vis alle";

function Common_header($side) {
global $lang;
print $lang['language'];
}





Ukendt (21-12-2002)
Kommentar
Fra : Ukendt


Dato : 21-12-02 01:57

On Sat, 21 Dec 2002 01:39:07 +0100, "Allan E" <ege@per_fjern_son.dk>
wrote:

>"-Martin-" <martin_aarhof(AT)hotmail.com> wrote in message
>news:fpa70vk755iedrsq69eoek7et6r7aco1e8@4ax.com...
>> Jeg har en masse variabler på i en php fil
>> De variabler vil jeg så gerne have ind i mine funktioner UDEN brug af
>> globals, kan det overhovedet lade sig gøre?
>> Eller er der en anden måde jeg skal gribe an på ?
>
>Nu er det jo netop det vi har globals til, men du kunne evt, i stedet for at
>have et hav af selvstændige variable lave et array, med alle variable i, og
>så gøre det globalt.
>Blot et forslag...
>
>Fx
>$lang['language'] = "Dansk";
>$lang['showall'] = "Vis alle";
>
>function Common_header($side) {
> global $lang;
> print $lang['language'];
>}

Åhhh ja... det havde jeg da slet ikk tænkt på
Det var en god idé..
Takker

Mikkel Christensen (03-01-2003)
Kommentar
Fra : Mikkel Christensen


Dato : 03-01-03 20:17

"-Martin-" <martin_aarhof(AT)hotmail.com> skrev i en meddelelse
news:q1f70voqg5ou7jrod253egfeq9o87i1pse@4ax.com...
> On Sat, 21 Dec 2002 01:39:07 +0100, "Allan E" <ege@per_fjern_son.dk>
> wrote:
>
> >"-Martin-" <martin_aarhof(AT)hotmail.com> wrote in message
> >news:fpa70vk755iedrsq69eoek7et6r7aco1e8@4ax.com...
> >> Jeg har en masse variabler på i en php fil
> >> De variabler vil jeg så gerne have ind i mine funktioner UDEN brug af
> >> globals, kan det overhovedet lade sig gøre?
> >> Eller er der en anden måde jeg skal gribe an på ?
> >
> >Nu er det jo netop det vi har globals til, men du kunne evt, i stedet for
at
> >have et hav af selvstændige variable lave et array, med alle variable i,
og
> >så gøre det globalt.
> >Blot et forslag...
> >
> >Fx
> >$lang['language'] = "Dansk";
> >$lang['showall'] = "Vis alle";
> >
> >function Common_header($side) {
> > global $lang;
> > print $lang['language'];
> >}
>
> Åhhh ja... det havde jeg da slet ikk tænkt på
> Det var en god idé..
> Takker

Nu så jeg lige spørgsmålet og ville nævne references.
http://www.php.net/manual/en/language.references.php

Pointen er at du ikke smider hele variablen, og dermed alt dens data, ind i
funktionen men kun en reference.
Lidt ligesom pointers hvor man kyler ram-adressen i hovedet på funktionen.

Det virker lidt på samme måde som hvis du erklærer variablen global.

Specifik brug i funktioner:
http://www.php.net/manual/en/language.references.pass.php

Alternativt har nyere udgaver af PHP (>=4.1.0 et array der hedder $GLOBALS
Det er et super globalt array der indeholder alle variable.
At det er superglobalt betyder at du kan bruge det inden i funktioner uden
først at erklære det for globalt eller sende det som parameter til
funktionen.

eks.:

$hej = 'hans':
function test()
{
return $GLOBALS['hej']
}
echo test();

Derved slipper du for selv at smide alle dine variable i er array du
erklærer globalt, det har PHP allerede gjort for dig:)
http://www.php.net/manual/en/reserved.variables.php#reserved.variables.globa
ls
http://www.php.net/manual/en/language.variables.predefined.php#language.vari
ables.superglobals

--
------> END <------
Mikkel Magnus Christensen
barefoot@jaha.dk, www.startfirma.dk, www.starthotel.dk, www.i-know.dk
------> END <------


Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste