/ 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
$_SERVER["HTTP_HOST"] eller variabel
Fra : Lars K.


Dato : 16-12-04 19:39

Hej

Hvad er bedst/normalt når man bruger $_SERVER[] og $_SESSION[]?

At tilgå $_SESSION[] direkte

Eller flytte $_SESSION[] over i en variabel ($t = $_SESSION[id]) og så
tilgå denne

Lars

 
 
Peter Brodersen (16-12-2004)
Kommentar
Fra : Peter Brodersen


Dato : 16-12-04 19:46

On Thu, 16 Dec 2004 19:39:10 +0100, Lars K. <lkj@person.dk> wrote:

>At tilgå $_SESSION[] direkte
>
>Eller flytte $_SESSION[] over i en variabel ($t = $_SESSION[id]) og så
>tilgå denne

Hvis din session-variabel ikke er særligt stor (hvilket den sjældent
er), så er der ikke nogen større betydning.

En forskel er dog, hvis du ændrer session-variablen, fx:

<?php
$t = $_SESSION['id'];
$_SESSION['id'] = 40;
?>

Herefter vil $t stadigvæk rumme den oprindelige værdi, hvilket måske
eller måske ikke er hensigtsmæssigt, alt efter om du veksler mellem at
bruge $t og $_SESSION['id'] fremover.

--
- Peter Brodersen

Lars K. (16-12-2004)
Kommentar
Fra : Lars K.


Dato : 16-12-04 22:57

>
> Hvis din session-variabel ikke er særligt stor (hvilket den sjældent
> er), så er der ikke nogen større betydning.
>
Nej de er ikke så store! Men det var også sådan mere teoretisk jeg
mente. Hvad gør "man" normalt? Principielt kan jeg jo være ligeglad, da
det ikke er mig som står for af garanterer en vis performance :)

Lars

Peter Brodersen (16-12-2004)
Kommentar
Fra : Peter Brodersen


Dato : 16-12-04 23:31

On Thu, 16 Dec 2004 22:57:19 +0100, Lars K. <lkj@person.dk> wrote:

>Nej de er ikke så store! Men det var også sådan mere teoretisk jeg
>mente. Hvad gør "man" normalt? Principielt kan jeg jo være ligeglad, da
>det ikke er mig som står for af garanterer en vis performance :)

I det tilfælde afhænger det af, om du skal juggle rundt med
resultatet, fx strippe tekst, smide det igennem diverse funktioner og
lignende. Her er det ikke nødvendigvis ønskværdigt at rette i selve
$_SESSION['foo'] . Til simple funktioner kan man selvfølgelig klare
sig let i stil med:

print htmlspecialchars($_SESSION['foo']);

Personligt ville jeg nok foretrække at smide variablen ind i en string
eller lignende passende i starten og så evt. behandle den dér (trim,
sikre en max-længde, etc.). Mest for at gøre det lettere at skifte
input-kilde fra et senere tidspunkt, fx ved i starten at rette
$name = $_SESSION['name'];
til
$name = enEllerAndenFunktion($_SESSION['name']);
eller
$name = $_POST['name'];
eller lignende.

Undtagelsen er så, hvis man har lyst til at redigere i variablen
undervejs. Hvis man føler for det (og/eller variablen i øvrigt er ret
stor, så man ikke vil gemme på den to gange), så kan man evt. gemme en
reference til variablen, i stedet for en kopi:

$name = &$_SESSION['name'];

Her vil en ændring af $name betyde, at man retter i $_SESSION['name'];

Slutteligt er der overvejelsen, at lige præcis superglobale variable
er... ja, superglobale. Så hvis man har lyst til at redigere dem
direkte i en funktion, så er der også mulighed for det. Fx:

function foo () {
$_SESSION['name'] .= " Hansen";
}
foo();


Men igen, overordnet vil jeg være tilfreds med at lave en kopi eller
reference i starten af scriptet, for at tilføje et lag mellem
udvælgelsen og så behandlingen af variablen.

--
- Peter Brodersen

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste