24. oktober 2002 - 10:20Der er
3 kommentarer og 1 løsning
Variabelt variabelnavn
Jeg skal lave en rekursiv metode. I denne metode laver jeg en variabel, som ikke må overskrives når metoden kalder sig selv igen. Men det gør den, hvordan løser jeg det?
Som jeg ser det, kan måske enten skjule vaiablen så den ikke kan ses af de andre rekursive kald (noget-private-agtig-noget) eller så kan jeg give variablen et varierende navn. Men hvordan gør jeg det?
Jeg vil altså gerne have at variablen i først kald hedder $test0, ved næste rekursive kald skal den så kaldes $test1 osv. PÅ den måde får det jeg laver med $test1 ingen indflydelse på $test0.
Det kan fint lade sig gøre - som vist nedenfor. Se ogsp PHP-manualens afsnit 7 om variable variabler.
V.h. Allan
------------------ <?php function rec() { static $nr=0;
$nr++; echo "A: $nr <br>"; $varnavn="test" . $nr; //"test1", "test2" ... ændres hver gang funktionen kaldes echo "B: $varnavn <br>"; $$varnavn="Indhold af variabel variabel med nr " . $nr; //Opret variabel med navnet som er indeholdt i $varnavn echo "C: $varnavn, ${$varnavn} <br>"; if ($nr<10) rec(); }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.