Intereting Posts
PHP post_max_size переопределяет upload_max_filesize Как сделать ошибки PHP в тексте вместо HTML Если PHP mt_rand () использует более быстрый алгоритм, чем rand (), почему бы просто не изменить rand () для использования более новой реализации? время нарастания 15 минут в цикле Как извлечь параметры запроса из строки URL в PHP? Справка по меню рекурсивного меню навигации PHP Как отобразить время выполнения MySQL-запроса в PHP? Как издеваться над сервисом Symfony 2 в функциональном тесте? Настройка машины Ubuntu / Apache / PHP для отправки электронной почты PHP Soap Server: невозможно получить доступ к параметрам запроса soap в моем вызываемом классе Почему эта функция не автолизуется? Значение mysql text с апострофом не отображается правильно создать определенную папку для загрузки на основе роли пользователя и ограничить доступ к другой папке в laravel elfinder Переместить указатель mysql_fetch_array Ошибка PHP LimitIterator («Не поддерживает поиск» + «Невозможно перемотать файл»)

PHP: использование правильного отступов с помощью Heredocs

Я только что прочитал мысль о 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 без пробелов / вкладок / отступов 🙁