Avatar billede garant11 Nybegynder
26. juni 2012 - 16:11 Der er 10 kommentarer og
1 løsning

Variable variables bliver ikke vist

Hej allesammen.
Jeg sidder og prøver at lege lidt med variable variables men det er kun variablerne der bliver vist.
Det ser ud til at jeg har en fejl i min PHP eller Apache2 opsætning fordi jeg ved at der ikke er fejl i selve scriptet, da det er ekstremt simpelt:

$a = "Hej";
$hejallesammen = "Hej allesammen.";
       
echo $a . "<br/>";
echo $hejallesammen . "<br/>";
echo ${$a} . "<br/>";

Har også prøvet med:

$a = "Hej";
$hejallesammen = "Hej allesammen.";
       
echo $a . "<br/>";
echo $hejallesammen . "<br/>";
echo $$a . "<br/>";

Er der nogen der har nogen der ved hvad der kan være galt?
Nårh ja, har PHP 5.3.10 og apache 2.2.22 på ubuntu 12.04
Avatar billede michael_stim Ekspert
26. juni 2012 - 16:14 #1
Hvad vil du have vist?

echo $a.$hejallesammen;
Avatar billede michael_stim Ekspert
26. juni 2012 - 16:16 #2
$a="Hej";
$b="allesammen";
$c=$a." ".$b;

Eller:
$a="Hej";
$b=" allesammen";
$c=$a.$b;
Avatar billede garant11 Nybegynder
26. juni 2012 - 16:26 #3
#michael_stim
Ifølge et af lynda.com's tutorials, skulle resultatet være:
hej
hej allesammen
hej allesammen
Avatar billede garant11 Nybegynder
26. juni 2012 - 16:32 #4
Men jeg får kun:
hej
hej allesammen
Avatar billede michael_stim Ekspert
26. juni 2012 - 16:33 #5
Kan ikke lige se fidusen med det der. Kan forstå hvis vi snakker referencer og pointers på objekter, arrays eller lignende. Men der ser syntaxen således ud:

$b = & $a;
$b = $a;

Hvad vil du opnå?
Avatar billede michael_stim Ekspert
26. juni 2012 - 16:35 #6
Det er ikke et eller andet framework specifikt?
Avatar billede garant11 Nybegynder
26. juni 2012 - 16:42 #7
Nej, der er ikke nogen fidus ved det udover at jeg at lære PHP.

Jeg ser en video guide hvor at scriptet ser sådan her ud:

$a = "Hej";
$hejallesammen = "Hej allesammen.";
     
echo $a . "<br/>";
echo $hejallesammen . "<br/>";
echo $$a . "<br/>";

Og hans output i browseren er:
hej
hej allesammen
hej allesammen

men når jeg køre scriptet får jeg det her output i browseren:
hej
hej allesammen
Avatar billede garant11 Nybegynder
26. juni 2012 - 16:48 #8
Jeg prøver at evaluer en variable uden at kende navnet på variablen ved brug af noget der hedder variable variables (dynamiske variabler).
Avatar billede michael_stim Ekspert
26. juni 2012 - 16:55 #9
Jep, læste lige op på det ( http://php.net/manual/en/language.variables.variable.php ). Har aldrig brugt det.
Avatar billede scootergrisen Nybegynder
26. juni 2012 - 16:59 #10
Jeg har læst lidt på det og her er hvad jeg forstår af det.

Når du bruger $$ til at lave en variabel variabel så sættes variabel navnet til værdien af en anden variabel.

$dyr = 'kat'; // variablen dyr får værdien kat
$$dyr = 'miau'; // variablen kat får værdien miau


Så med din kode kunne der stå...

$a = "hej";
$hej = "Hej allesammen.";
     
echo $a . "<br/>";
echo $hej . "<br/>";
echo ${$a} . "<br/>";

$a = "hej";
$hej = "Hej allesammen.";
     
echo $a . "<br/>";
echo $hej . "<br/>";
echo $$a . "<br/>";

Læg mærke til jeg har ændret Hej til hej med småt ellers skulle $hej ændres til $Hej.
Avatar billede garant11 Nybegynder
26. juni 2012 - 17:11 #11
Aha! got it, tusind tak. :-)
Havde slet ikke set at den var case sensitiv.
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