PHP - Комментарии внутри - PullRequest
4 голосов
/ 01 июля 2011

Как комментировать, если я использую этот синтаксис ?:

<?php
            echo <<<EOF

    Is it //Comment or <!-- Comment --> or something else?    

            EOF;
            ?>

Я немного запутался.Спасибо

Ответы [ 7 ]

11 голосов
/ 01 июля 2011

Вы не можете. Суть HEREDOC в том, что все, что внутри, будет частью строки. Он существует, чтобы избежать трактовки метасимволов PHP (включая комментарии). Все, что вы поместите в него, появится в строке (и, таким образом, в этом случае будет отображено в любом месте, куда направлен вывод).

Если вывод HTML, вы можете включить в него комментарий HTML. Это все равно будет отображаться в выводе, но все, что разбирает HTML, будет восприниматься как комментарий. Аналогично, если содержимое - JS, вы можете использовать комментарий JS и т. Д.

4 голосов
/ 01 июля 2011

Вы не можете использовать комментарий внутри синтаксиса heredoc.

http://en.wikipedia.org/wiki/Here_document

Это способ указать буквально литерал строку.

3 голосов
/ 01 июля 2011

Все, что находится между разделителями heredoc, интерпретируется буквально, и в этом смысл синтаксиса heredoc. Будут также выводиться любые комментарии HTML, и PHP не заботится о том, что браузер их пропустит.

2 голосов
/ 01 июля 2011

Это зависит от типа выхода, к которому вы echo обращаетесь.Если вы выводите эти данные на HTML-страницу, вы можете использовать синтаксис <!-- -->, и браузер увидит это как комментарий.Если вы выводите в текстовом файле, все внутри heredoc будет выводиться (по правде говоря, все будет выводиться и при написании HTML, только браузер будет интерпретировать HTML-комментарий).

Когда я 'При использовании синтаксиса heredoc и необходимости комментировать информацию внутри, я обычно использую комментарий (в стиле PHP) перед в heredoc и ссылаюсь на любые конкретные строки в пределах их номера строки относительно heredoc:

/* Write out default INI file.
 * L002: Log level. Possible values: debug,info,warning,error.
 */
echo <<<EOF
[global]
logging = error
...
EOF

Надеюсь, это поможет.

1 голос
/ 01 июля 2011

Насколько мне известно, вы не можете оставлять комментарии внутри блока HEREDOC.Согласно документации PHP на http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc «Текст Heredoc ведет себя как строка в двойных кавычках, без двойных кавычек.» .. и вы не можете помещать комментарии в строку в двойных кавычках.

0 голосов
/ 02 февраля 2018

На самом деле, внутри эха есть обходной способ комментирования.

Вы можете использовать следующий синтаксис

<?php
'.(/*comment here*/ NULL).'

Эта строка будет читаться как внутренний php и может содержать комментарии.NULL должен быть включен, потому что все внутри внутреннего php требует значения.NULL - наиболее удобный выбор, так как на самом деле вам не нужно значение, просто комментарий.

0 голосов
/ 01 июля 2011

На самом деле, вы не можете использовать комментарии PHP в середине строки (ни в двойных кавычках, ни в одинарных кавычках, ни heredoc строк). Они будут показаны буквально.

В некоторых редких случаях может быть полезно смоделировать комментарии и впоследствии удалить их из строки. Например, это может быть полезно, если вы создаете какой-то шаблонизатор. Но, конечно, в большинстве случаев вы не должны этого делать, так как это плохая практика.

Вы можете создать свою строку, используя "\ r \ n" (используя двойные кавычки для разрывов строк) и поместить комментарии в одну и ту же строку после строки, например, echo "line1\r\nline2"; //this outputs two lines

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...