I'm fairly new to PHP, but I can't seem to find the solution to this question in google.
Here is some example code:
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
what does the period character do in the middle of each piece of the string?
ie: "blabla" . "blabla" . "blablalba";
This operator is used to combine strings.
EDIT
Well, to be more specific if a value is not a string, it has to be converted to one. See Converting to a string for a bit more detail.
Unfortunately it's sometimes mis-used to the point that things become harder to read. Here are okay uses:
echo "This is the result of the function: " . myfunction();
Here we're combining the output of a function. This is okay because we don't have a way to do this using the standard inline string syntax. A few ways to improperly use this:
echo "The result is: " . $result;
Here, you have a variable called $result
which we can inline in the string instead:
echo "The result is: $result";
Another hard to catch mis-use is this:
echo "The results are: " . $myarray['myvalue'] . " and " . $class->property;
This is a bit tricky if you don't know about the {}
escape sequence for inlining variables:
echo "The results are: {$myarray['myvalue']} and {$class->property}";
About the example cited:
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
This is a bit tricker, because if we don't use the concatenation operator, we might send out a newline by accident, so this forces lines to end in "\r\n" instead. I would consider this a more unusual case due to restrictions of email headers.
Remember, these concatenation operators break out of the string, making things a bit harder to read, so only use them when necessary.