11. juli 2004 - 01:19Der er
14 kommentarer og 5 løsninger
Hvilken syntax er mest rigtig?
Jeg sad lige og undrede mig over hvad der er den rigtige syntax i forbindelse med PHP. Her er 4 eksempler, kan I se hvilken der er rigtig og måske forklare mig hvorfor den er det?? Jeg er klar over at alle 4 fungerer, men hvilken er den mest rigtige.:
Prøv dette: <?php $hej = "fisk"; echo "$hej<br>"; echo '$hej<br>'; ?> Så kan du se hvordan de forskellige metoder virker på variabler. Ellers er der vel ingen stor forskel på dem. Personligt foretrækker måde #1 fordi den udskriver " istedet for ' og den kan håndtere variabler lidt lettere.
Den anden metode kan også sagtens håndtere variabler, men på en lidt anden måde: echo ''.$hej.'<br>'; virker med variabel
Double-quotes giver, som du kan læse en par fordele med hensyn til bla. Escaped characters og variabler. Men i dette tilfælde med de tre muligheder er der i grunden ingen rigtig eller forkert måde at gøre det på. Normalt vil jeg nok bruge metode 1 eller 4 da de sætter html-attributten i dobbelt-citationstegn, hvilket normalt er det man bruger i HTML-sammenænge.
Der er ingen af de 4 eksempler der er rigtig eller forkert. Det er kun et spørgsmål om hvad man bedst kan lide. Personligt ville jeg nok benytte 4, men som sagt er det en smagssag. Det er dog bedst at bruge de samme quotes til attributer i HTML'et hele vejen igennem. :)
Jeg har personligt altid brugt nr. 4 da det er lidt lettere at se når der udskrives en variabel i noget tekst. Dog er det selvfølgelig lidt mere bøvlet at skrive eksempelvis:
Dog er du i den sidste tvunget til at escape tegn tit hvis du skriver HTML. 4'eren er efter min mening mest brugbar ved udskrivning af HTML hvis du vil holde standarden.
Ok - det virker måske (har faktisk aldrig selv prøvet). Men er det ikke en direkte konflikt med HTML-standarden (eller hvilken som helst anden ML standard)?
Ok - ja det kan tænkes. HTML er faktisk nogenlunde omgængelig. Jeg er selv igang med en hjemmeside i Strict XHTML 1.0 og der tror jeg ikke den går (da det faktisk er baseret på XML 1.0).
Jeg troede virkelig der var et krav i standarden om typen af apostrof. Men W3C's validator brokker sig ikke hvis jeg bruger enkelt-apostrof.
Men jeg må sige at det hvis er rimelig udbredt at bruge dobbelt-apostrof - jeg fik selv HTML ind på den måde. Jeg har aldrig set andet en dobbelt-apostrof hverken i bøger eller tutorials på nettet.
Det er nok rigtig at den er mest udbredt. Men jeg tror faktisk bare at det er en vanesag at de fleste har lært/bruger ". Tror ' er ligeså lovlig som den anden :)
Nu er der godt nok lukket og uddelt point, men derfor kan jeg jo godt lige smide et par kommentarer alligevel.
Først og fremmest er alle 4 metoder lige korrekte, og valget mellem dem er udelukkende et spørgsmål om smag og vaner (og hvordan man vil indsætte variabler). Selv bruger jeg normalt metode 3, da jeg gerne vil have variabler i selve strengen. Jeg plejer dog at skrive variablerne i strengen med "kompleks notatation" - altså således:
echo "<a href='{$url}'>{$linktext}</a>";
Der er forresten også en metode nummer 5: Den såkaldte heredoc-syntaks:
echo <<<EOT My name is "$name". I am printing some $foo->foo. Now, I am printing some {$foo->bar[1]}. This should print a capital 'A': \x41 EOT;
Fordelen ved den er, at man kan benytte både enkelt- og dobbelt-anførselstegn uden at skulle escape dem, og variabler og kontroltegn bliver fortolket ligesom ved metode 1 og 3.
Angående anførselstegn i HTML (og XML og XHTML), så er kravet bare, at de skal være der. Både enkelte og dobbelte er tilladt.
Synes godt om
Ny brugerNybegynder
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.