Кто-нибудь может объяснить тонкости использования heredoc в PHP на примере фрагментов кода PHP, основываясь на том, что написано в руководстве ниже?
В руководстве php.net написано:
Очень важно отметить, что строка с закрывающим идентификатором не должна содержать других символов, кроме, возможно, точки с запятой (
;
). Это означает, в частности, что идентификатор не должен иметь отступов, а также пробелов или табуляции до или после точки с запятой. Также важно понимать, что первый символ перед закрывающим идентификатором должен быть новой строкой, как определено локальной операционной системой. Это\n
в системах UNIX, включая Mac OS X. После закрывающего разделителя (за которым может следовать точка с запятой) также должна следовать новая строка.Если это правило нарушено и закрывающий идентификатор не является "чистым", он не будет считаться закрывающим идентификатором, и PHP продолжит его поиск. Если правильный закрывающий идентификатор не будет найден до конца текущего файла, в последней строке произойдет ошибка разбора.
Heredocs не могут быть использованы для инициализации свойств класса. Начиная с версии PHP 5.3, это ограничение действует только для heredocs, содержащих переменные.
Вот ссылка на руководство по PHP: http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc