Ziet er goed uit. En zowel bevestigd wat ik altijd wist...

Enkele quotes is sneller dan dubbele
Gaaf Jan en bedankt voor het delen. Een stelling onderbouwen om zo aan te tonen dat wat je stelt ook nog is correct is is mijnsinziens kicken :)
Hierbij wordt aangetoont dat.
<? $singleQuoted = 'Hallo, ' . $doel; ?>
sneller is als
<? $doubleQuoted = "Hallo, $doel"; ?>
Maar dat is niet helemaal goed getest, want je kan met dubbele quotes ook gewoon
<? $doubleQuoted = "Hallo, " . $doel; ?>
Want bij "Hallo, $doel"; staat de variabele in de string, en dan moet php vanzelfsprekend meer moeite doen om de variabele eraan vast te plakken.
Als je zowel buiten als binnen je PHP dubbele qwoutes gebruikt, kost het ook meer tijd om het uit te voeren omdat de binnenste dubbele doutes webgeslaht dienen te worden

<?php
echo "<input type=\"text\" name=\"test\">";
?>

Zoals je in dit PHP voorbeeld ziet worden in de laatste line de qoutes weggeslahed
niet weggeslashed, ze worden escaped, waardoor php snapt dat daar de string niet ophoudt, maar dat de " in de string thuis horen, en dus wordt het script hierdoor niet vertraagt, misschien hoogstens omdat je string 1 teken per dubbele quote langer is...
lekker opgelet twan! koffie ? :)
@ DeaDaluz
Hoezo niet weggeslasht? Kun je iets beter uitleggen, ik snap je ff niet.
@Twan, binnen php is "dit" een string, dus alles wat tussen de " " staat, of 'dit' dus ook, nu is het woord dit bij allebei de string.

Maar als ik zet ""dit"", dan is het woord dit geen string, omdat het niet tussen " " staat.
"\"dit\"" nu is de string \"dit\", want door de \ voor de " negeert php de " als een quote met belang voor het php script en wordt het behandeld als een string.

Dit heeft als doel om het mogelijk te maken met echo() toch gewoon quotes of dubbele quotes te echo()-en zonder dat php ze verwerkt.

DaeDaluz schreef op 03.04.2006 09:20
Hierbij wordt aangetoont dat.
<? $singleQuoted = 'Hallo, ' . $doel; ?>
sneller is als
<? $doubleQuoted = "Hallo, $doel"; ?>
Maar dat is niet helemaal goed getest, want je kan met dubbele quotes ook gewoon
<? $doubleQuoted = "Hallo, " . $doel; ?>
Want bij "Hallo, $doel"; staat de variabele in de string, en dan moet php vanzelfsprekend meer moeite doen om de variabele eraan vast te plakken.


Zoals in m'n artikel staat zal PHP een string waarin geen variabelen staan behandelen als een single-quoted string met alle (performance) gevolgen van dien. Zie onder kopje "Show me that string, Baby" ;-)
Het verschil in snelheid tussen de single en quoted string is ook wel makkelijk te verklaren.
Omdat beiden niet gelijk zijn aan elkaar.
PHP neemt de inhoud van een single-quoted string gewoon over, bij een quoted string wordt er eerst nog gekeken of er variabelen of controle tekens in staan.

In een single-quoted string kun je bijvoorbeeld geen enter ("\n") intypen, maar moet je dit dus dus letterlijk doen.
<?php

echo 'regel1
regel2';

?>
Dus wil je geen variabelen of controle tekens gebruiken in de string dan gebruik je een single-quoted string, anders een quoted-string.

edit:

Nu we het toch hebben over uitvoertijd:
<?php

echo 'blaat' . 'blaat' . 'blaat' . 'blaat';

echo 'blaat' , 'blaat' , 'blaat' , 'blaat';

?>
De echo met de komma's in aanzienlijk sneller.

Reageren