Ik vroeg mij af wat ik nou eigenlijk moest gebruiken tijdens het programmeren, "" of ''? En waarom moet ik dan "" of '' gebruiken? Een linkje naar een Nederlandse website met hierin uitleg zou ook hartelijk welkom zijn ;)
maar uit oogpunt van leesbaarheid is het wellicht toch verstandiger om de "variabelen buiten de quotes" te halen.
Dat vind ik niet per se leesbaarder. Vooral wanneer je meerdere variabelen in een string hebt kan dat een oerwoud aan quotes geven waarin je het overzicht compleet verliest.
Overigens apart dat ik nooit iemand heredocs zie gebruiken, terwijl een heredoc ideaal is bij grotere strings:
<?php
$sql = <<<EOT
select *
from $table
where type= '$type'
limit $start, $max_results;
EOT;
$result = $dbh->query($sql);
?>
[size=xsmall]Toevoeging op 06/02/2017 18:41:06:[/size]
Ozzie PHP op 04/02/2017 17:35:20
Dit betekent dat in theorie content die tussen enkele quotes staat, sneller wordt verwerkt dan content die tussen dubbele quotes staat.
In de praktijk betekent dat, dat mensen dus strings gaan opsplitsen en aan elkaar gaan plakken (zoals je in het voorbeeld erna doet). Dat geeft weer extra overhead, waardoor de theoretische performancewinst ongedaan wordt gemaakt.
Sterker: vanaf 2 of 3 variabelen is het sneller om je variabelen juist tússen dubbele quotes te houden. Sowieso zijn ook in dat geval de verschillen verwaarloosbaar. Ik heb het dan over nanosecondes. Als je wilt optimaliseren, kun je beter naar andere aspecten van je code kijken. ;-)
Correct! Die komma is inderdaad sneller. Ik heb hier op het forum lang geleden eens de vraag gesteld waarom dan toch iedereen de punt gebruikt ... en dat was eigenlijk vanuit gewoonte.
PS ... het is DAT dier ;-) ( Sorry, ik kon het niet laten om de leraar even te corrigeren :P )
@Willem
Zo schijnt het ook te kunnen:
<?php
$sql = <<<SQL
select *
from $table
where type= '$type'
limit $start, $max_results;
SQL;
$result = $dbh->query($sql);
?>
Er schijnt verschil te zijn tussen deze twee regels qua performance:
Klopt. In het tweede geval ziet echo 4 losse strings die afzonderlijk worden ge-echo'd. In het eerste geval worden de 4 losse strings eerst aan elkaar geplakt tot 1 grote string. Voor dat plakken zijn (intern) 4 extra tijdelijke variabelen nodig, waardoor de code groter en complexer wordt, en dus meer tijd kost om uitgevoerd te worden.
[size=xsmall]Toevoeging op 07/02/2017 23:48:45:[/size]
Ozzie PHP op 07/02/2017 23:16:05
Zo schijnt het ook te kunnen:
Klopt, in principe kun je elke willekeurige string van alfanumerieke tekens en underscores gebruiken. En als je een eindje verderop nog een heredoc gebruikt, kun je diezelfde string weer nemen; die hoeft niet steeds uniek te zijn.
De regeltjes in PHP zijn overigens een stuk strenger dan die in Perl (waar ik veel meer in programmeer) en ik had eerlijk gezegd geen zin om uit te proberen wat wel en niet werkte, dus heb ik lekker veilig voor 'EOT' gekozen. ;-)
In Perl zou je namelijk ook iets als dit kunnen doen:
$str = <<'';
Hello world
print $str;
of zelfs (geeft hetzelfde resultaat)
$str = <<'print "Einde\n";';
Hello world
print "Einde\n";
print $str;