Gå til innhold

hvordan unsette alle variabler?


Anbefalte innlegg

Videoannonse
Annonse

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 ????????
Lenke til kommentar

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.

Lenke til kommentar
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.

Lenke til kommentar
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.

Lenke til kommentar

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å
×
×
  • Opprett ny...