Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  8 801
Hei igjen.
Nok en gang må jeg spørre her, siden jeg ikke finner ut av det selv.

Språkfilen min ser slik ut:

Kode

$lang = array(
				'SYS_NAME' => 'Tittel på webside',
				'HOME' => 'Hjem',
osv osv...
Den blir inkluder på alle sidene, og det funker fint, men ikke når jeg kjører egne funksjoner.

functions.php blir inkludert ETTER språkfilen.

Eneste måten jeg har fått det til å virke på er hvis jeg inkluderer språkfilen inne i funksjonene, men det er jo ikke særlig god praksis.

Hjelper dere meg igjen?
Sur og sarkastisk
droppboks's Avatar
Prøv og bruke

Kode

global $lang;
inne i funksjonene, såvidt jeg har skjønt så vil ikke funksjoner bruke eksterne variabler uten at du eksplisitt sier at disse skal være med.
Ok, så jeg må legge det til i alle funksjonene? Finnes det ingen "snarvei"?
Sur og sarkastisk
droppboks's Avatar
Tror ikke det :S Ikke på en "enkel" måte i hvert fall, google det

Si ifra om du finner noe xD
Sist endret av droppboks; 15. mai 2011 kl. 00:26.
Her kan du lese litt om hvordan det hele henger sammen:
http://php.net/manual/en/language.variables.scope.php

Denne artikkelen tar opp alternativer til til globale variabler, som mange mener er bad practice.
http://blog.case.edu/gps10/2006/07/2...mming_practice
Sist endret av danielsk; 15. mai 2011 kl. 01:23.
Fant ikke ut av noe mer vétig, så jeg brukte

Kode

global $lang;
i de funksjonene som returnerer tekst som er nødvendig i flere språk.
Kan jo evt sjekke ut OOP med klasser, om du ikke allerede har gjort det. Så bare lage en klasse med funksjoner i. Hvor globale slår inn på alle sammen uansett.

Edit: public/private/protected
z0p
uʍop ǝpısdn
z0p's Avatar
Det er vel et godt utvalg lettvindte løsninger, men jeg stiller meg ikke bak at det er gode løsninger I utgangspunktet burde du nok funnet en annen utviklingsmodell for dette


Kode

$lang = array(
                'SYS_NAME' => 'Tittel på webside',
                'HOME' => 'Hjem',
osv osv...  

function langStr($idx) {
    return $GLOBALS[$idx];
}

echo langStr('SYS_NAME');

Kode

namespace lang {
  const NAME = 'Tittel på webside';
  const HOME = 'Hjem';
}

echo lang\NAME;
$GLOBALS[$idx] = $GLOBALS['lang'][$idx]

seff