ヒアドキュメント内にコードコメントを入れる必要があります

2011年04月16日に質問されました。  ·  閲覧回数 3.7k回  ·  ソース

wantTheBest picture
2011年04月16日

foo.phpファイルのheredocブロック内にコメントを追加できないようです。

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内でコードをコメントアップするにはどうすればよいでしょうか。

回答

SeppoTaalasmaa picture
2012年05月08日
11

コメント文字列を変数関数のパラメータとして渡すことができます。

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;
DaOgre picture
2011年04月16日
10

これは仕様によるものです。 ヒアドキュメントになると、最後まで入力するすべてのものが1つの長い文字列の一部として扱われます。 最善の策は、ヒアドキュメントを壊し、コメントを入力してから、新しいエコーラインを開始することです。

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

他の誰かが言ったように、あなたはHTMLコメントをすることができます、しかしそれらはあなたのソースコードを見る誰にでもまだ見えるでしょう

Naftali aka Neal picture
2011年04月16日
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コメントになりました

Joeytje50 picture
2014年01月07日
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定義する最初の行を追加するだけで、この方法で次のヒアドキュメントにコメントを挿入できます。 これは、グローバルスコープで関数を定義していない場合にも機能します。