如何注释掉,如果我用这个语法?:PHP - 评论里面<PHP的echo <<< EOF
<?php
echo <<<EOF
Is it //Comment or <!-- Comment --> or something else?
EOF;
?>
我有点糊涂了? 谢谢
如何注释掉,如果我用这个语法?:PHP - 评论里面<PHP的echo <<< EOF
<?php
echo <<<EOF
Is it //Comment or <!-- Comment --> or something else?
EOF;
?>
我有点糊涂了? 谢谢
你不能。 HEREDOC的意义在于它内部的任何东西都将成为字符串的一部分。它的存在是为了避免将PHP元字符(包括注释)视为如此。你放进它里面的任何东西都会出现在字符串中(因此在这种情况下,它会回应到输出指向的任何地方)。
如果输出是HTML,那么您可以在其中包含HTML注释。这仍将出现在输出中,但解析HTML的任何内容都会将其视为注释。同样,如果内容是JS,那么您可以使用JS注释等等。
heredoc分隔符之间的所有内容都按字面解释,这就是heredoc语法的要点。任何HTML注释也会被输出,PHP不关心浏览器会忽略它们。
这取决于您输出的类型为echo
。如果您将该数据回显到HTML页面,则可以使用<!-- -->
语法,并且浏览器会将其作为注释来看。如果你输出到一个纯文本文件,heredoc中的所有内容都将被输出(实际上,编写HTML时也会输出所有内容,只是浏览器会解释HTML注释)。
当我使用定界符语法,需要内部注释信息,我通常使用(PHP样式)之前评论的定界符,并通过他们的行号,相对引用定界符内的任何具体线路:
/* Write out default INI file.
* L002: Log level. Possible values: debug,info,warning,error.
*/
echo <<<EOF
[global]
logging = error
...
EOF
希望有所帮助。
据我所知,你不能把评论放在HEREDOC块内。 根据http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc的PHP文档,“Heredoc文本的行为与双引号字符串相同,不带双引号。”并且您不能将注释放在双引号字符串中。
其实,你不能在字符串中间使用PHP注释(既不用双引号也不用单引号,也不能用字符串)。他们将字面上显示。
在一些罕见的情况下,模拟注释并稍后从字符串中删除它们可能会很有用。例如,如果您正在创建某种模板引擎,它可能很有用。但是,在大多数情况下,你不应该这样做,因为这是不好的做法。
您可以建立使用“\ r \ n”个(使用双引号的换行符),并把在同一行评论后的字符串,例如您的字符串 echo "line1\r\nline2"; //this outputs two lines
为了让它更清晰,我改进了我的答案,因为经过2年的沉默后,有人开始给我降低薪水,所以我需要以某种方式处理:-) – Karolis
其实,在回声里面有一种迂回的评论方式。
您可以使用下面的语法
<?php
'.(/*comment here*/ NULL).'
这条线将被解读为内PHP和可以包含注释。必须包含NULL,因为内部php中的所有内容都需要一个值。 NULL是最方便的选择,因为你实际上不需要一个值,只是一个评论。
但问题是关于在heredoc块中添加注释 – iainn
谢谢大家的好消息! – Uli