|
| $_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
| |
|
|