Avatar billede encorez Nybegynder
24. oktober 2002 - 10:20 Der 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.
Avatar billede achrist Nybegynder
24. oktober 2002 - 12:19 #1
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();
}

rec();
?>
----------------
Avatar billede encorez Nybegynder
24. juli 2003 - 22:57 #2
læg et svar
Avatar billede achrist Nybegynder
25. juli 2003 - 09:22 #3
Svar
Avatar billede encorez Nybegynder
25. juli 2003 - 15:46 #4
takker
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester