Hallo!

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

Mvg,
Rob
Het maakt in de meeste gevallen niet uit. Mijn eigen voorkeur gaat naar de enkele quotes.

Bekijk deze link maar eens, hier kun je zien dat bijvoorbeeld "\n" alleen werkt met dubbele quotes.
Ik gebruik altijd, ' ipv ". Anders krijg je met HTML tags altijd het probleem dat je moet escapen enzo. Dat ziet er gewoon niet uit en je vergeet snel iets te escapen waardoor je snel fouten maakt.


<?php
	echo '<a href="#" target="_blank" title="'.$title.'">'.$title.'</a>'.PHP_EOL;
	// Ziet er beter uit dan, typt makkelijker en minder kans op fouten.
	echo "<a href=\"#\" target=\"_blank\" title=\"".$title."\">".$title."</a>\n";
?>


Ik gebruik zeer zelden \n na een lijn eigenlijk, dan gebruik ik eerder PHP_EOL. \n gebruik je alleen om HTML netjes te krijgen?
De linebreaks verschillen geloof ik per OS. Op Mac's wordt weer anders omgegaan als met Linux, en PHP_EOL zorgt daarbij voor een juiste line-break. Dat staat mij bij.
\n betekend new line, \r is carriage return. In een voorbeeldje, een \n doet officieel alleen dit: (_ huidige plek van de cursor)
Voor:
Wat tekst _

Na \n:
Wat tekst
          _


Een \r zorgt er officieel weer voor dat je terug gaat naar de eerste plek op een regel:
Voor:
Wat tekst _

Na \r:
Wat tekst (met cursor op de plek van "W")

Na \n\r:
Wat tekst
_


Op Unix doet \n gewoon al meteen beide. Op windows moet je eerst de kolom resetten (\r) en dan een rij naar beneden (\n). De PHP_EOL zal op Unix systemen alleen voor \n zorgen, maar op Windows \r\n.
Wat handiger is (enkele of dubbele quote) kan alleen bepaald worden aan de hand van een concreet voorbeeld. Er is geen universeel sluitend antwoord voor het een of het ander, beide hebben een bestaandsrecht.

Je zou wel van een vuistregel gebruik kunnen maken: enkele quote (') als het kan, dubbele quote (") als het moet.

En alsjeblieft mensen, PHP is niet uitgevonden om statische lappen HTML te echo'en. Je kunt te allen tijde een PHP blok openen en sluiten. Zelfs al gebruik je single quotes zoals @Joakim voorstelt ben je nat als je hier, om wat voor reden dan ook, JavaScript of inline CSS in verwerkt, die hebben namelijk af en toe ook single quotes nodig zodat je alsnog in de knoei komt met quotes.
Bedankt voor alle reacties!
Er ontbreekt nog een stukje essentiële uitleg. Vreemd dat dat door niemand wordt genoemd.

Content die tussen dubbele quotes staat wordt geëvalueerd, in tegenstelling tot content die tussen enkele quotes staat.

<?php

$naam = 'Rob';

echo 'Ik ben $naam.';

// Op het scherm zal verschijnen: Ik ben $naam.

echo "Ik ben $naam.";

// Op het scherm zal verschijnen: Ik ben Rob.

?>
Dit betekent dat in theorie content die tussen enkele quotes staat, sneller wordt verwerkt dan content die tussen dubbele quotes staat. De PHP-parser hoeft dan minder hard te werken. Zelf zul je daar in de praktijk weinig van merken, maar het is wel de moeite waard om te vermelden.

De meeste mensen gebruiken in PHP enkele quotes. De voorbeeldzin van hierboven wordt dan:

<?php

echo 'Ik ben ' . $naam . '.';

?>
En wanneer het in de html zelf staat, dan wordt het:


Ik ben <?php echo $naam; ?>.

Overigens gebruik ik in dit voorbeeld de variabele $naam. Het is gebruikelijk om in code Engelse benamingen te gebruiken, dus dan zou het in dit geval $name worden.
Echter, bij queries gebruik je vaak weer " omdat je daarin enkele quotes gebruikt.
Voorbeeld:

<?php
$query = "
	SELECT DISTINCT emailadres, naam 
	FROM tabel 
	WHERE naam = '".$naam."' 
	AND ietsanders = '".$ietsanders."' 
	ORDER BY id DESC";
?>


Begin je met enkele quotes, wordt het dit:
<?php
$query = '
	SELECT DISTINCT emailadres, naam 
	FROM tabel 
	WHERE naam = \''.$naam.'\' 
	AND ietsanders = '".$ietsanders."' 
	ORDER BY id DESC';
?>
@Thomas, klopt PHP is ook uitgevonden om HTML te echoën. Maar bv lexicon entries kunnen HTML bevatten of dergelijke ;-) Vreemd dat je over inline CSS begint want dat is gewoon NOOIT van toepassing.

@Eddy voor zover ik weet kun je gewoon met " werken in queries, of ben ik nou in de waar aangezien ik altijd database classes gebruik die de daadwerkelijke queries voor me maken.
Joakim Broden op 06/02/2017 09:08:03
klopt PHP is ook uitgevonden om HTML te echoën.

Klopt, voor de dynamische delen. Ik had het over de statische delen. Het echo'en van laatstgenoemde is niet nodig en maakt code alleen maar slechter leesbaar.

Ook is het onderscheid statisch-dynamisch zoek als je plakken HTML echo'd. Zoals @Ozzie zegt is er ook een functioneel verschil dat in strings tussen dubbele quotes variabelen geëvalueerd worden, maar uit oogpunt van leesbaarheid is het wellicht toch verstandiger om de "variabelen buiten de quotes" te halen. En als je dan toch bezig bent, echo dan ook alleen de variabelen in PHP, en niet de rest.

Joakim Broden op 06/02/2017 09:08:03
Vreemd dat je over inline CSS begint want dat is gewoon NOOIT van toepassing.

Ik kan mij best voorstellen dat dynamische HTML-code mogelijk inline stijlen heeft. Of JavaScript snippets. Niet optimaal, maar het is mogelijk. En dan kom je wederom in de knoei met de mix van enkele/dubbele quotes (stijlattribuutwaarden en event handlers staan weer tussen enkele quotes), waar het mij eigenlijk om te doen was.

Reageren