Næe, det er det heller ikke, ihvertfald ikke medmindre og 'dir' og 'entryname' er defineret som konstanter.
det kunne være en sjusket måde at skrive ${"dir"} og ${"entryname"} som så går godt fordi php er meget tolerant med syntaksen og tillader and man udelader anførselstegn om strenge her og der.
${"dir"} og ${"entryname"} er så variabele variable, bortset fra at der her angiven en konstant så det ville være præcis lige så godt (og faktisk bedre) at skrive: $dir og $entryname
hvis jeg var helt sikker på det er det ville jeg kalde det noget skodkode.
I en tekststreng betyder notationen "....${variablenavn}...." blot ganske almindelig variabel substitution ganske som ".....$variabelnavn....".
Anvender man {...} på dette sted, kan PHP imidlertid forstå langt flere variabel-syntakser end eller. Et simpelt eksempel er
$a['kkk']='ppp'; print "her er $a['kkk'] \n";
som giver fejl, mens
$a['kkk']='ppp'; print "her er ${a['kkk']} \n";
går godt.
På sin vis kan man sige, at det er den sikre og pæne måde at lave variabel-substitutioner på i tekststrenge, og at "...$variabelnavn..." blot er den hurtige, forkortede måde der tilfældigvis bare virker.
Det er bestemt ikke skodkode.
Det kan sammenlignes med altid at skrive `feltnavn` i MySql, selv om det ikke er et reserveret ord, eller også i MySql at bruge '...' omkring tal, selv om det ikke er nødvendigt '7913'.
I eksemplet ovenfor burde forfatteren have været konsekvent og bruge, eller ikke bruge, det alle steder.
Uden for tekststrenge betyder det ganske vist "variable variable".
Hvad bidrager det med i hans eksempel? Det kan jeg stadig ikke se.
Synes godt om
Slettet bruger
02. september 2003 - 11:36#7
Iøvrigt er det da helt korrekt, hvad jakoba skriver at ${variabelnavn} fremfor ${'variabelnavn'} er slamkode. Idet PHP skal gætte, at der ikke er tale om en konstant (som syntax'en ellers indikerer).
Jo, men mercur8, i dette eksempel, i tekststrenge, er det ikke længere variable variable.
Bidrager med i hans eksempel? Bortset fra han ikke er konsekvent, er det på linie med om man skal have { ... } med i en if, hvis der kun er een sætning:
if (.....) { a=9; }
Overflødigt, men læseligt, og nemmere hvis der en dag skal udvides. Jeg tager dem gerne med i dette tilfælde.
I PHP strenge kan man gøre det samme. Der er er f.eks. forskel på
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.