需要将代码注释放在heredoc中

时间:2011-04-15 16:39:36

标签: php comments heredoc

好吧,我似乎无法在heredoc文件的foo.php块中添加评论:

echo <<<_HEREDOC_FOO

       // okay this comment was intended to explain the code below but it
       // is showing up on the web page HTML sent to the browser

      <form action="foo.php" method="post">
      <input type="submit" value="DELETE RECORD" /></form>

_HEREDOC_FOO;

表单是否有效,确定(顺便说一下上面的表单代码是高度截断的 为了我的问题,这里。)

但是评论(okay this comment was..blah blah blah)  也出现在浏览器中。它出现在 浏览器如上所述:

// okay this comment was intended to explain the code below but it
// is showing up on the web page HTML sent to the browser

我尝试过的评论划分的排列:

// <--  
// -->

和....

<-- //
--> //

在两种情况下均无法允许我在heredoc内发表评论。

那么我如何在我的heredoc s中评论我的代码?

4 个答案:

答案 0 :(得分:8)

这是设计的。一旦你成为你的heredoc一切你输入直到你结束它被视为一个长字符串的一部分。你最好的选择是打破你的HEREDOC,发表你的评论,然后开始一个新的回声线

echo <<<_HEREDOC_FOO
    text text text
<<<_HEREDOC_FOO;
//Comments
echo <<<_HEREDOC_FOO
    text text text
<<<_HEREDOC_FOO;

正如其他人提到的那样,您可以进行HTML评论,但查看源代码的任何人都可以看到这些评论

答案 1 :(得分:8)

您可以将注释字符串作为变量函数的参数传递。

function heredocComment($comment)
{
    return "";
}

$GLOBALS["heredocComment"] = "heredocComment";

echo <<<_HEREDOC_FOO

   {$heredocComment("
   okay this comment was intended to explain the code below but it
   is showing up on the web page html sent to the browser
   ")}

  <form action="foo.php" method="post">
  <input type="submit" value="DELETE RECORD" /></form>

_HEREDOC_FOO;

答案 2 :(得分:2)

试试这个:

echo <<<_HEREDOC_FOO

       <!-- okay this comment was intended to explain the code below but it
            is showing up on the web page html sent to the browser -->

      <form action="foo.php" method="post">
      <input type="submit" value="DELETE RECORD" /></form>

_HEREDOC_FOO;

现在是HTML comment

答案 3 :(得分:0)

实际执行此操作的最简单方法是使用与SeppoTaalasmaa相同的策略,但之后更短:

$comment = function($str) {return '';};
echo <<<_HEREDOC_FOO

       {$comment('okay this comment was intended to explain the code below but it
       is showing up on the web page html sent to the browser')}

      <form action="foo.php" method="post">
      <input type="submit" value="DELETE RECORD" /></form>

_HEREDOC_FOO;

只需添加定义$comment的第一行,您就可以通过这种方式在下一个heredoc中插入注释。如果您没有在全局范围内定义函数,这也将起作用。