Я только что прочитал мысль о php doucmentation для heredocs, но я не видел никакого способа правильно задумать код. Возможно ли это в php?
Сейчас я делаю это, но это плохо для читаемости.
<?php if(something){ ... echo <<< END This is a test. I am writing this text out. END; } # end of if statment
Я хотел бы иметь что-то вроде этого:
<?php if(something){ ... echo <<< END This is a test. I am writing this text out. END; } # end of if statment
Я знаю, что у bash есть способ сделать это (хотя я не могу вспомнить, что это такое), поэтому мне было интересно, можно ли это делать в php. Я так не думаю, но я думал, что попрошу.
Это ограничение PHP для правильного форматирования инструкций Heredoc. Это ограничение парсера. Как указано в документации:
Очень важно отметить, что строка с закрывающим идентификатором не должна содержать других символов, кроме, возможно, точки с запятой (;). Это означает, что идентификатор не может быть отступом, и не должно быть пробелов или вкладок до или после точки с запятой. Также важно понимать, что первый символ перед закрывающим идентификатором должен быть новой строкой, определенной локальной операционной системой. Это \ n в системах UNIX, включая Mac OS X. Заключительный разделитель (возможно, за которым следует точка с запятой) также должен следовать новой строке.
Если это правило нарушено, а закрытый идентификатор не является «чистым», он не будет считаться закрывающим идентификатором, а PHP продолжит искать его. Если правильный идентификатор закрытия не найден до конца текущего файла, в последней строке будет отображаться ошибка синтаксического анализа.
Неизвестно, будет ли это решено в будущем PHP.
AFAIK, это невозможно, вам нужно добавить закрытый идентификатор heredoc без пробелов / вкладок / отступов 🙁