Есть два способа Heredoc и Nowdoc
Разница между ними такая же как разница между одинарными и двойными кавычками.
В 99% случаев вам нужны именно одинарные кавычки - Nowdoc
$html = <<< 'HTML'
<h1>Tag</h1>
HTML;
Основной зачем нужны одинарные кавычки - это не осуществляется никаких подстановок в них. Если это так , всегда нужно использовать их.
А Heredoc и Nowdoc позволяют избежать экранирования кавычек в строке
Роман Комарницкий, а можно с этого места немного подробнее? Хоть примерно в какую сторону гуглить.
Ну то есть я понимаю, что не любая строка является валидным HTML-кодом, но мне всегда казалось, что любой HTML можно представить в виде строки.
Роман Комарницкий, дело говорит Stalker_RED,
Вы попробуйте сначала переменные делать, а уже потом аккуратно выводить их в разметке
например так: $title = 'Hello world!';
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- можно так вывести -->
<title><?=$title?></title>
</head>
<body>
<!-- или так вывести -->
<h1><?echo $title?></h1>
</body>
</html>