Этот оператор используется для объединения строк.
EDIT
Если говорить точнее, если значение не является строкой, его необходимо преобразовать в единицу. См. Преобразование в строку для более подробной информации.
К сожалению, иногда это неправильно используется для того, чтобы вещи стали труднее читать. Вот правильное использование:
echo "This is the result of the function: " . myfunction();
Здесь мы объединяем выходные данные функции. Это нормально, потому что у нас нет способа сделать это, используя стандартный встроенный синтаксис строки. Несколько способов неправильно использовать это:
echo "The result is: " . $result;
Здесь у вас есть переменная с именем $result
, которую мы можем вставить в строку вместо:
echo "The result is: $result";
Еще одно трудно пойманное неправильное использование - это:
echo "The results are: " . $myarray['myvalue'] . " and " . $class->property;
Это немного сложно, если вы не знаете о escape-последовательности {}
для встроенных переменных:
echo "The results are: {$myarray['myvalue']} and {$class->property}";
О приведенном примере:
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
Это немного сложнее, потому что, если мы не используем оператор конкатенации, мы можем отослать новую строку случайно, поэтому вместо этого строки должны заканчиваться на "\ r \ n". Я бы посчитал это более необычным случаем из-за ограничений заголовков писем.
Помните, что эти операторы конкатенации вырываются из строки, что затрудняет чтение, поэтому используйте их только при необходимости.