Avatar billede learner Praktikant
26. august 2004 - 12:50 Der er 6 kommentarer og
2 løsninger

Vil skabe en variabel, ud af et navn. feks navn bliver til $navn

Hej jeg har brug for at lave noget output om til variabler... Det ville lette en del arbejde :-)

Lidt som her:

$data = "heidi";
$var = "navn";

// og her kommer det tricky!
make_into_var($var) = $data;

og nu er $navn = "heidi"

Kan man ik det???
Avatar billede googolplex Novice
26. august 2004 - 12:52 #1
$var = $data
Avatar billede googolplex Novice
26. august 2004 - 12:53 #2
Ellers skal du bruge arrays.

$var['navn'] = 'Heidi';
Avatar billede fennec Nybegynder
26. august 2004 - 13:00 #3
Ved ikke om du kan bruge dobbelt $ metoden på den måde.

$$var = $data;

Den virker ihvertfald på denne måde:
$navn = "en Tekst";
$var1 = "navn";
$var2 = $$var1;

$$var1 bliver her opfattet som $navn hvorfor $var2 indeholder den samme værdi som $navn.
Avatar billede learner Praktikant
26. august 2004 - 13:17 #4
fennec er tæt på tror jeg...
De andre forslag virker ikke til mit tilfælde :-) desværre...

Men virker $$ på den her måde???

$data = "heidi";
$var = "navn";
$$var = $data;

for så skal $navn være = "heidi"

Jeg troede måske der fandtes en funktion der kunne klare jobbet, men jeg kan ik selv finde nogen???
Avatar billede learner Praktikant
26. august 2004 - 13:19 #5
Her kan i se hvilken sammenhæng jeg skal bruge det i:

$Query = mysql($cfgDbDatabase, "SELECT * FROM $tablename WHERE brugerid='$brugerid'") or die ($strNoDatabase);
$sellers_Array = mysql_fetch_array($Query);
foreach ($sellers_Array as $fieldname => $value){
    $fieldname = "sellers_".$fieldname;
    create_var($fieldname) = $value;
}
Avatar billede learner Praktikant
26. august 2004 - 13:21 #6
eller:
foreach ($sellers_Array as $fieldname => $value){
    $fieldname = "sellers_".$fieldname;
    $$fieldname = $value;
}

resultat:
$sellers_XXXXXX = YYYYYY
Avatar billede fennec Nybegynder
26. august 2004 - 13:44 #7
Den eneste motode til at udskrive variablerne igen, er jo ved at kende navnet på den, også bruge $$ metoden til at få data ud. Så kan du lige så godt bruge array metoden (som googolplex også har nævnt). Det er den jeg ville bruge, og den virker....

$Query = mysql($cfgDbDatabase, "SELECT * FROM $tablename WHERE brugerid='$brugerid'") or die ($strNoDatabase);
$sellers_Array = mysql_fetch_array($Query);
foreach ($sellers_Array as $fieldname => $value){
    $fieldname = "sellers_".$fieldname;
    $MyArr[$fieldname] = $value;
    echo $MyArr[$fieldname]
}

I stedet for:
...
    $fieldname = "sellers_".$fieldname;
    $$fieldname = $value;
    echo $$fieldname
...

Du kan jo ikke vide på forhånd hvad fieldname er. Så du kan jo ikke skrive:

...
    $$fieldname = $value;
    echo $DenVærdiIFieldName;
...

Og hvis du af en eller anden må måde gør, kan du stadig bruge array metoden:
...
    $MyArr[$fieldname] = $value;
    echo $MyArr['DenVærdiIFieldName'];
...
Avatar billede learner Praktikant
26. august 2004 - 13:57 #8
Jeg bruger array metoden som jeg altid har gjort så... Æv, jeg troede der fandtes en smart funktion som jeg ikke kendte!

Ingen svar i denne omgang!

Men tusind tak for alle forslagene! :-)
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