enkele of dubbele quotes?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jerry php

Jerry php

08/11/2011 14:08:20
Quote Anchor link
mijn vraag is als ik bijvoorbeeld in php een formulier maak met html, hoe moet ik dan laten zien dat het html is, ipv php.
ik doe normaal dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    echo "U heeft het formulier bevestigd";
}


else
{
    echo "Gebruikersnaam: <input type='text' style='margin-left:200px;' />
          <br />
          Wachtwoord: <input type='password' />"
;
}


?>


Is dat correct, met dubbele quotes na de echo, en enkele bij de waardes.
 
PHP hulp

PHP hulp

24/11/2020 15:10:35
 
Eddy B

Eddy B

08/11/2011 14:11:41
Quote Anchor link
In html werken we altijd met dubbele quotatie, dus <input type='password' /> is incorrect en moet <input type="password" /> zijn. In PHP werken we vooral met individuele quotatie omdat dat handiger is als je HTML wilt echoën, daarnaast is het als ik het me goed herinner 0,00004 seconden sneller.
 
Victor Perez

Victor Perez

08/11/2011 14:42:11
Quote Anchor link
Klopt enkele quotes is sneller ( al zou je dat niet snel merken )
Enkele quotes in HTML is niet fout en toegestaan door de HTML standaard dus browser zullen hier geen problemen mee hebben.
Toch staat dubbele quotes gewoon netter.
 
Eddy B

Eddy B

08/11/2011 15:00:04
Quote Anchor link
@Victor: Bedankt, zo leer ik ook nog eens wat. :)
 
Jacco Brandt

Jacco Brandt

08/11/2011 15:28:36
Quote Anchor link
Enkele quotes is precies even snel als dubbele quotes. Het word pas slomer als je variabelen in deze dubbele quotes plakt.
 
Ozzie PHP

Ozzie PHP

08/11/2011 16:49:33
Quote Anchor link
In PHP gebruik je bij voorkeur enkele quotes. Als je dubbele quotes gebruikt dan wordt de data door de PHP parser gestuurd.

echo 'hoi';
Resultaat wordt meteen op scherm getoond.

echo "hoi";
Resultaat wordt naar de PHP parser gestuurd en dan getoond. Is iets langzamer...
 
- SanThe -

- SanThe -

08/11/2011 16:58:05
Quote Anchor link
Ozzie PHP op 08/11/2011 16:49:33:
echo 'hoi';
Resultaat wordt meteen op scherm getoond.


Niet geheel correct.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo 'Hoi \'dit staat tussen quotes\'';
?>


Ook dit moet door de parser want er wordt naar escapes gekeken.
 
Jacco Brandt

Jacco Brandt

08/11/2011 17:20:42
Quote Anchor link
Ik had er een tijd geleden een artikel over gezien, die had alle acties van de compiler opgeslagen, en het bleek dat er in beide gevallen dezelfde acties werden uitgevoerd.
 
Jerry php

Jerry php

08/11/2011 17:51:43
Quote Anchor link
Ik zelf vind dit het fijnst:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
echo "Gebruikersnaam: <input type='text' style='margin-left:200px;' />
          <br />
          Wachtwoord: <input type='password' />"
;
?>

aangezien ik escapen niet echt handig vind.
Maar aangezien het bovenstaande niet correct is, moet ik het dus zo doen?:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
echo 'Gebruikersnaam: <input type="text" style="margin-left:200px;" />
          <br />
          Wachtwoord: <input type="password" />'
;

?>
 
Wouter J

Wouter J

08/11/2011 18:01:26
Quote Anchor link
Ja, regels voor escapen in PHP:
- PHP zoveel mogelijk met enkele quotes('), dit is sneller
- Zodra er in een string enkele quotes staan buiten de string dubbele, zo hoef je niet te escapen
- Zodra er in een string dubbele quotes staan buiten de string enkele.
- Zodra je gebruik maakt van \n of een van de andere escaped characters gebruik je dubbele (") quotes.

En hieruit kun je afleiden:
- Met een query altijd dubbele (aangezien je enkele erin gebruikt)
- Met HTML altijd enkele, aangezien de aanbevolen quotes in HTML dubbel zijn.
Gewijzigd op 08/11/2011 20:17:30 door Wouter J
 
Ozzie PHP

Ozzie PHP

08/11/2011 18:34:07
Quote Anchor link
- SanThe - op 08/11/2011 16:58:05:
Ozzie PHP op 08/11/2011 16:49:33:
echo 'hoi';
Resultaat wordt meteen op scherm getoond.


Niet geheel correct.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo 'Hoi \'dit staat tussen quotes\'';
?>


Ook dit moet door de parser want er wordt naar escapes gekeken.

Ik denk dat dit eerder met de syntax te maken heeft, omdat je de echo afsluit.

probeer dit maar eens:

$bla = 'test';
echo 'Hoi \'dit staat $bla tussen quotes\'';
echo "Hoi 'dit staat $bla tussen quotes'";

In het laatste geval wordt ie door de parser getrokken en wordt "test" op het scherm getoond. In het 1e geval staat er gewoon "$bla".
 
Eddy B

Eddy B

08/11/2011 18:41:30
Quote Anchor link
Kijk, van dit soort topic's leer je nog eens wat.
Gewijzigd op 08/11/2011 18:48:23 door Eddy B
 
- SanThe -

- SanThe -

08/11/2011 19:00:12
Quote Anchor link
Ozzie PHP op 08/11/2011 18:34:07:
Ik denk dat dit eerder met de syntax te maken heeft, omdat je de echo afsluit.

probeer dit maar eens:

$bla = 'test';
echo 'Hoi \'dit staat $bla tussen quotes\'';
echo "Hoi 'dit staat $bla tussen quotes'";

In het laatste geval wordt ie door de parser getrokken en wordt "test" op het scherm getoond. In het 1e geval staat er gewoon "$bla".


Hoe dan ook, het gaat niet direct naar het scherm, de escape slashes worden eerst verwijderd voordat het naar het scherm gaat. De $var wordt inderdaad genegeerd.
 
Wouter J

Wouter J

08/11/2011 19:09:39
Quote Anchor link
Vandaag de dag is enkel of dubbel ong. even snel, zo zegt phpbench.
 
Jasper DS

Jasper DS

08/11/2011 19:16:07
Quote Anchor link
De snelheid is inderdaad te verwaarlozen, de grootste voordelen beschreef Wouter in een voorgaande post.
 
Fabian M

Fabian M

08/11/2011 20:15:42
Quote Anchor link
Jacco Brandt op 08/11/2011 15:28:36:
Enkele quotes is precies even snel als dubbele quotes. Het word pas slomer als je variabelen in deze dubbele quotes plakt.



Hoe zou PHP dan weten dan jij $var in je string hebt geplakt? Door de string te lezen en dat kost ook tijd.
 
Wouter J

Wouter J

08/11/2011 20:24:08
Quote Anchor link
Om dit topic nog wat interessanter te maken je hebt nog 2 methodes voor een string:
Heredoc
Dit is hetzelfde als een dubbele quote string, maar dan zonder quotes. Quotes hoeven hier dus nooit geescaped te worden. Verder kun je hier dus ook variabelen, functies en escaped characters kwijt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$naam
= 'Jerry';
echo <<<EOD // Met de ingang van de Nowdoc in PHP5.3 kan deze ook met dubbele quotes "EOD"
  Dit is een "voorbeeld". Hallo $naam
EOD; // Dit wordt Dit is een "voorbeeld". Hallo Jerry
?>


Nowdoc
Zelfde als Heredoc, maar dan alsof het een enkele quote string is. Dus hier word niks geescaped of geparsed:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$naam
= 'Jerry';
echo <<<'EOD'
  Dit is een 'voorbeeldje', hallo $naam
EOD; // Wordt Dit is een 'voorbeeldje', hallo $naam
?>


Edit:
Zoals je ziet kan deze syntax highlighter deze strings niet aan
Gewijzigd op 08/11/2011 20:24:56 door Wouter J
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.