Vraag is, is er wel de noodzaak om alles aan elkaar te rijgen? Ben je echt een soort van string aan het bouwen? Hier zijn mogelijk ook andere -en wellicht betere- manieren voor.
In dit geval betrof het een erg lange string die ik voor mezelf wat overzichtelijker wou maken.
Maar het is nog steeds niet helemaal duidelijk, als ik het goed begrijp definieer ik in onderstaande vb eerst de $var en daarna voeg ik string 1 en 2 daaraan toe.
Iets concateneren aan een niet-bestaande variabele is in ieder geval fout.
Dit:
<?php
$var .= 'whatever';
?>
Levert je een notice op (Undefined variable: var in X on line Y). Dit zal verder wel doen wat het moet doen, maar ondertussen lopen je errorlogs misschien vol met dit soort flauwekul terwijl andere (en mogelijk urgentere) fouten ondersneeuwen in dit soort ruis.
Je zou $var ook direct kunnen initialiseren op string 1, het is niet nodig om eerst expliciet een lege string toe te kennen aan $var.
Maar dit is allemaal nogal abstract. Als "string 1" en "string 2" complete plakken (statische) HTML zijn zou ik eerder voor output buffering gaan. Tis maar net hoe alles er concreet uit ziet en wat handig werkt.
is dat je de $var eerst ergens initialiseert, en er vervolgens altijd vanuit kunt gaan dat ie bestaat. Mocht je opeens besluiten om het toevoegen van string 1 en string 2 om te draaien, dan gaat er niks fout.
$string2 = 'ik ben een ';
$string2 .= 'aangevulde string';
$string3 = ''; // dit is een lege string, maar hij bestaat wel
if ($test === true) {
$string3 .= 'nu ben ik gevuld';
}
echo $string3; // dit geeft nooit een foutmelding/waarschuwing ongeacht of $test waar of onwaar is
echo $string4; // dit geeft wel een foutmelding/waarschuwing, want deze string bestaat niet
Het concateneren (wat een prachtig woord) zie ik enkel nuttig als je een string door middel van een loop wilt aanvullen. Ik heb het nooit anders gebruikt.