Avatar billede the_ghost Nybegynder
11. juli 2004 - 01:19 Der 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.:

1)
echo "<a href=\"side.php\">Link</a>";

2)
echo '<a href=\'side.php\'>Link</a>';

3)
echo "<a href='side.php'>Link</a>";

4)
echo '<a href="side.php">Link</a>';
Avatar billede gil-galad Nybegynder
11. juli 2004 - 01:34 #1
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
Avatar billede skovenborg Nybegynder
11. juli 2004 - 01:37 #2
du kan se forskellene på singe og double quotes her i manualen:
http://dk.php.net/manual/en/language.types.string.php

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.
Avatar billede raz0 Nybegynder
11. juli 2004 - 02:07 #3
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. :)
Avatar billede jaw Nybegynder
11. juli 2004 - 02:58 #4
De 3 første er der ikke den store forskel på. Personligt benytter jeg altid nr. 3, men det er jo smag og behag.

Nr. 4 har et lille "problem". I det tilfælde, hvor du vil udskrive:

echo '<a href="$hest">$hest</a>';

...vil du på skærmen få udskrevet $hest og ikke værdien af variablen.
Avatar billede intel4004 Novice
11. juli 2004 - 08:40 #5
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:

echo '<a href="?action='.$new_action.'">'.$linktext.'</a>';

istedet for

echo "<a href=\"?action=$new_action\">$linktext</a>";

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.

Mhv Intel4004
Avatar billede the_ghost Nybegynder
11. juli 2004 - 10:38 #6
Jeg takker mange gange for de svar der er kommet...

Kan jeg ikke lige få skovenborg og jaw til at ligge et svar, så får i 4 point hver??
Avatar billede skovenborg Nybegynder
11. juli 2004 - 12:56 #7
svar :-)
Avatar billede jaw Nybegynder
11. juli 2004 - 13:51 #8
Selvfølgelig :) Selv tak...
Avatar billede jaw Nybegynder
11. juli 2004 - 16:40 #9
intel4004:

Ikke for at rette dig, men du skriver: "Dog er du i den sidste tvunget til at escape tegn tit hvis du skriver HTML." - det gør du jo så bare omvendt:

echo"<a href='js'></a>";

det behøver ikke escapes, HTML godtager også ' :)

Og tak for alle pointene :)
Avatar billede gil-galad Nybegynder
11. juli 2004 - 16:44 #10
tak
Avatar billede skovenborg Nybegynder
11. juli 2004 - 16:46 #11
også tak :-)
Avatar billede intel4004 Novice
11. juli 2004 - 16:53 #12
>>jaw

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)?

Hvad med XML?

Mvh Intel4004
Avatar billede jaw Nybegynder
11. juli 2004 - 16:55 #13
Ved ikke med andre ML såsom XML, men den er så vidt jeg ved ganske lovlig i HTML. I hvert fald i følge W3C.
Avatar billede intel4004 Novice
11. juli 2004 - 17:03 #14
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).

Vil nu altid skrive HTML med dobbelt-apostrof :)

Mvh Intel4004
Avatar billede skovenborg Nybegynder
11. juli 2004 - 17:03 #15
i XML er det på samme måde - eneste regel er at der skal være quotes rundt om værdien
Avatar billede intel4004 Novice
11. juli 2004 - 17:28 #16
skovenborg og jaw>>

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.

Mvh Intel4004
Avatar billede jaw Nybegynder
11. juli 2004 - 17:32 #17
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 :)
Avatar billede intel4004 Novice
11. juli 2004 - 19:51 #18
jeg takker :)
Avatar billede Slettet bruger
13. juli 2004 - 00:07 #19
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.
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