Avatar billede egeriis Nybegynder
29. september 2003 - 15:55 Der er 5 kommentarer og
2 løsninger

Betydningen af ${var}

Hvad betyder det når en variabel skrives ${var}?

:o)
Avatar billede anhansen Nybegynder
29. september 2003 - 16:01 #1
hmm... Jeg har aldrig lige set det skrevet sådan før. Men i php begrænser {} et sammensat statement... Dvs noget kode som hører sammen. De bruge jo til at afgrænse funktioner osv..
Det kan også bruges hvis du har et array i en tekststring:
print("hej {$navnearray[\'webmaster\']}");
Hvis man skriver det uden {} så vil det skrive:
array['webmaster']
istedet for det navn som er i arrayet.. Altså kan php ikke tolke at klammerne hører til variabelnavnet..
Avatar billede egeriis Nybegynder
29. september 2003 - 16:13 #2
Hmm, lettere forklaret vil det sige at den ignorerer \ ?
Avatar billede delwin Nybegynder
29. september 2003 - 17:44 #3
Det er ikke korrekt.

Prøv at skrive:
<?php

$var_indhold = "test";

$var_varnavn = "var_indhold";

echo ${$var_varnavn};

?>

Det kan også skrives således:

<?php

$var_indhold = "test";

$var_varnavn = "var_indhold";

echo $$var_varnavn;

?>

Begge scripts echo'er "test".

Det er en metode man kan bruge hvis man laver variabler med dynamiske navne - hvilket normalt ikke er nogen god idé, da det besværligør debugging meget.
Avatar billede anhansen Nybegynder
29. september 2003 - 19:45 #4
Nemlig... Men nu var der kun et dollar i det i spørgsmålet... Du bruger 2 i begge tilfælde... Og igen bare for at afgrænse, og øge læsbarheden... Altså for at lave et afgrænset område (compound statement) som jeg skrev ovenfor...
Avatar billede anhansen Nybegynder
29. september 2003 - 19:47 #5
Og til egeriis: Nej.. den ignorer ikke \ . Det bruges til at lave escape karakterer med. Fordi vi er inde i en streng, kan vi ikke bruge tegnet ' , da compileren ville opfatte strengen som sluttet. Men istedet bruger man \' og så kommer strengen til at indeholde ' tegnet...
Avatar billede nicklasb Nybegynder
30. september 2003 - 15:10 #6
vil vel egentligt kun give mening i et færdigt script, hvis programmøren har ønsket at give en ”ny” programmør muligheden for selv at vælge hvad hans variabler skal kaldes ud fra nogle defines, evt. i toppen af scriptet. Giver dog ikke videre meget mening at give den ”nye” programmør denne feature. Kan ikke lige gennemskue hvornår dette skulle være så brugbart at det er et krav det kommer med.
For at hindre fejl ved ulovlige variabelnavne, skal den oprindelige programmør jo også til at tjekke på definesne inden de bliver sat, og så bliver opgaven jo straks meget større, og meget mere kompliceret, end hvad den fra starten kunne have været! Og et system der også udskriver fejlkode hvis programmøren er så fatsvag at kalde en define der skal bruges til variabelnavne for et ulovligt navn.
Og så tror jeg også at det kræver lidt ekstra for programmøren at sidde og programmere ud fra de ”ukendte” variabelnavne, og huske dette igennem hele udviklingsfacen.
Og samtidig bliver scriptet vel også en HEL del svære at debugge senere hen. Så langt fra en god løsning, men muligheden er der dog..

Har selv som en lille uskreven regel, når jeg skriver free-scripts eller scripts til folk, hvor jeg igen mulighed har for at vide hvor det bliver brugt, at kalde variablerne noget rimelig kompliceret, som fx initialerne i mit navn understreg en beskrivende tekst, eller navnet på scriptet, funktionen af det, eller en dato for udviklingstiden. Så er jeg da RIMELIG sikker på navnet ikke allerede er brugt andre steder på den side den nu engang skal postes på.
Fx kunne den hede $ndbnews_head
Har den nye programmør nu kaldt sine egne variabler det samme, er en af mine andre uskrevne regler meget simple.. Så MÅ det simpelthen være ham der er for langt ude, og så må han selv tag og rette sit eget script, eller mit til så det passer ind i hans.. Men tænk engang; ”Hvem der dog havde et script på nettet, en anden havde lavet, som tilfældigvis indeholde MIT navn.. weee..!”

Men kan da se pointen i et større script hvor man fx har lavet noget kode som skal skrives ind i fx en allerede færdig portal, for at vise nyheder eller lignende.. Så er det da smart! ;D
Men hvis det endelig er det til det kommer er jeg nu mere tilhænger af mine egne love ;)
Avatar billede egeriis Nybegynder
05. oktober 2003 - 18:44 #7
Jeg takker, det var noget af en smørre. :o)
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

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