Gå til innhold

hvordan unsette alle variabler?


Anbefalte innlegg

Videoannonse
Annonse
Skrevet
unset($GLOBALS);

Mener du vell.

Vil nok funke fint den.

Poteto - potato... :p

 

 

Men skjønner ikke helt hvorfor trådstarter ønsker å unsette alle variabler.
Kanskje han tror han frigjør minne på web-serveren? :p
Skrevet (endret)

Vil den fungere?

Er det noen som kan teste denne:

 

$a = "test";

unset($GLOBALS);

echo $a;

 

Den skal ikke fungere, siden den sletter selve $GLOBALS men ikke variabelene.

 

EDIT:

Du kan bruke den øverste løsningen til Findus sammen med unset, hvis du slår opp i manualen finner du en ferdig funksjon i kommentarene.

Endret av ????????
Skrevet

Stemmer det ????????, funket ikke.

Men er jo en smal sak å iterere(norsk ord for iterate?) over arrayet og så unsette alle variabler.

Eller bruke get_defined_vars.

Litt relevant kanskje:

Noe jeg postet på et annet forum på et helt annet spørsmål, men som har med bruker satte variabler å gjøre, hvordan finne navn og verdier.

 

<?php
$var = "test";
$name = "another variable";
$test = "bah";

$sliced = array_slice(array_keys(get_defined_vars()), 13);

foreach ($sliced as $varname) {
      echo "Variable name: ".$varname." contains value: ".$$varname."<br />\n";
}
?>

 

Ikke det beste eksemplet, da jeg uten å ha brukt noe særlig tid på det, eller sett nøye på det, mener at det er stor sjanse for at det ikke vil funke i alle situasjoner.

Men kan hjelpe litt her og tror jeg.

Skrevet
iterere(norsk ord for iterate?)

Når man først snakker om norske ord, hva med disse oversettelsene?

 

Array = Matrise

Unset = Nullstille eller frigjøre

 

Uansett så har PHP automatisk søppeltømming, så den eneste grunnen til å gjøre dette måtte være for at scriptet skal starte på nytt uten noen verdier satt. Det er der klasser og/eller funksjoner er fine. Da trenger du kun å destruere og opprette en ny klasse for at variablene skal være nullstilte.

Skrevet
iterere(norsk ord for iterate?)

Når man først snakker om norske ord, hva med disse oversettelsene?

 

Array = Matrise

Unset = Nullstille eller frigjøre

 

Uansett så har PHP automatisk søppeltømming, så den eneste grunnen til å gjøre dette måtte være for at scriptet skal starte på nytt uten noen verdier satt. Det er der klasser og/eller funksjoner er fine. Da trenger du kun å destruere og opprette en ny klasse for at variablene skal være nullstilte.

Matrise == matrix. Matrix != array. :)

Unset, frigjøre, ja, høres ikke så dumt ut egentlig. Er rart med tema som programmering på norsk.

 

Uansett, etter litt tenking så tror jeg det ikke er mulig å frigjøre alle variabler med en enkelt unset();.

$GLOBALS inneholder ikke variabelen $a, men en referanse til den.

F.eks:

 

$a = "Test";
$GLOBALS = "haha, nå er det bare en vanlig variabel";
unset($GLOBALS);
echo $a;
print_r($GLOBALS);

 

Vil gi følgende: Test.

 

Med andre ord har man frigjort $GLOBALS, men $a er ikke en del av $GLOBALS så den eksisterer enda.

Tror det greieste blir å bruke get_defined_vars(); som i mitt eksempel over, og så bruker unset(); på hver variabel som er satt.

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...