Der er to typer af strenge i PHP (HEREDOC og NOWDOC er andre varianter - dem kan i læse om i manualen)
Den første type er double-quoted. Det er de strenge hvor der bruges " og " (surprise). Den særlige egenskab ved dem er at variable bliver fortolket selvom de står inde i de strenge. Det vil sige:
- $navn = 'Jens';
- echo "Hej $navn, har du det godt?"; // Outputs: Hej Jens, har du det godt?
Den anden type er single-quoted. Det er de strenge hvor der bruges ' og '... De er kendetegnet ved at variable i den type af strenge ikke bliver fortolket. Derfor:
- $navn = 'Jens';
- echo 'Hej $navn, har du det godt?'; // Outputs: Hej $navn, har du det godt?
Så, der er to løsninger til dit problem.
Enten at du bruger dobbelt-quoted strings og escaper dine " i html'en i strengen (ved at skrive \" istedet for ").
Eller at du bryder strengen der hvor der fremgår variable. Begge løsninger vises herunder:
- $navn = 'Jens';
- echo 'Hej '.$navn.', har du det godt?'; // Outputs: Hej Jens, har du det godt?
- echo "Hej \"$navn\", har du det godt?"; // Outputs: Hej "Jens", har du det godt?
@Jacob, {} om variable bruges kun i doublequoted strings, og kun i specielle situationer - det kan dog bruges overalt - men der er ingen grund til det. Det ville for eksempel kunne bruges her:
- $var = 'hej';
- echo "Streng hvor {$var}bliver efter fulgt af tekst, som PHP ellers ville have fortolket som værende en del af variabel navnet."; // Outputs: Streng hvor hejbliver efter fulgt af tekst, som PHP ellers ville have fortolket som værende en del af variabel navnet.
- echo "$varbliver"; // Outputs:
Og at bruge echo som du skriver er altså forbudt! Det er $var = 'hej '. $navn . ' bla bla'; og
IKKE echo() på variablens navn.
Indlæg senest redigeret d. 06.02.2012 15:07 af Bruger #17015