1. Concatenate of strings and variables
One operator of php is the concatenation operator which
is written as a single dot (.). It is used to concatenate two
expressions.
<?php
'John'.'Doe'; // generate a string "JohnDoe"
?>
It doesn't matter if you concat strings or variables. Even numbers can be concatenate.
<?php
'Foo'.'Bar';
'Bla'.$var;
$var1.$var2;
?>
In this examples the concatenations are calculated, however they are not used. As this is a valid expression itself it can be saved in a variable or printed directly with echo
<?php
$texts = 'Foo'.'Bar';
echo $some_variable.'String';
?>
The number of concatenations is unlimited, however php concatenate only 2 expressions together and use this result for the next concatenation.
<?php
$name = $surname.' '.$lastname;
// surname + one space + lastname
echo 'I am '.$name.', good morning.';
?>
It can be tricky to concatenate variables and strings if they contain single quotes and double quotes. There can be some errors if you use html code.
<?php
// you want a link <a href="index.php?section=XYZ">Link</a>, in this
// XYZ part should be filled with a variable
$var = 'XYZ';
echo '<a href="index.php?section='.$var.'">Link</a>'; // one valid solution
echo "<a href=\"index.php?section=\".$var.\">Link</a>";
// this would generate <a href="index.php?section=".XYZ.">Link</a> as the text, which is not what you want
echo '<a href="index.php?section=".$var.">Link</a>';
// this would generate <a href="index.php?section=".$var.">Link</a>, which is also not what you want
?>
Some may be get irritated to write something like .'" or maybe
."\" after variables. However after the concat operator you can
write any string which may contain any escape sequences you want. To don't
get irritated you first write the full html code and then add the variable
with the concatenate operator.
<?php
echo '<a href="index.php?section=XYZ">Link</a>';
// ^^^
// replace with '..' (which is invalid atm.)
// |
// V
echo '<a href="index.php?section='..'">Link</a>';
// ^^
// insert the variable
// |
// V
echo '<a href="index.php?section='.$var.'">Link</a>';
?>
With sprintf you got some possibilities to fill a string with a variables content.