【问题标题】:PHP tag closing-- when is needed?PHP标签关闭——什么时候需要?
【发布时间】:2010-10-23 14:07:03
【问题描述】:

It's recommended 不应该在文件末尾放置 PHP 结束标记,以避免各种不良错误。但是有什么情况需要PHP标签关闭呢?

【问题讨论】:

    标签: php


    【解决方案1】:

    如果要从 PHP 代码块切换到纯文本输出,则需要一个结束标记。

    这是一个例子:

    <?php
        // PHP code block
    ?>
    <!-- plain text output and not processed by PHP -->
    </body>
    

    【讨论】:

      【解决方案2】:

      只有当你想在你的 php 块之后输出非 php 代码时才需要它。

      【讨论】:

        【解决方案3】:

        当您不只是在脚本中使用 PHP 时 :-)

        【讨论】:

          【解决方案4】:

          顺便说一句,如果您想知道通过跳过结束标记来防止什么错误。由于 Zend 的解释不详细。

          PHP 不需要它,省略它可以防止意外地将尾随空格注入到响应中。

          这意味着如果您想使用 header() 将某人重定向到其他位置或以任何方式更改 HTTP 标头......那么如果某些文件以这种方式结束,您将无法并且会收到错误消息。

          }
          ?>
           //space here
          

          因为那这个空间会作为内容输出到网站,然后你就不能修改标题了。

          【讨论】:

            【解决方案5】:

            作为一般规则,我总是添加结束标记,因为这是我的问号手指一天中唯一得到锻炼的时间。那个可怜的问号在 PHP 中没有得到爱 ;-)

            但是说真的,在不需要的时候添加结束标签实际上会导致非常混乱的错误。因为这个,我有一次把头发拉了一个下午。问题通常是因为结束标签后面有空格,你不能轻易看到,但它们被解释为响应正文的一部分。如果您将此文件包含在另一个想要稍后发送自定义标头的脚本中,这将是一个坏消息。在脚本开始发送响应正文后,您无法发送标头信息,因此这些不可见的小空格会导致脚本失败。

            【讨论】:

            • 别忘了三元运算符: $var = expr ?真值:假值;
            • 我还是不太明白。我知道结束标签不是必需的,但是如果您收到无法发送标头的错误,那么您几乎可以立即知道要查找的错误。这并不神秘。我的强迫症想要关闭那个 PHP 标记。 :)
            【解决方案6】:

            这是我个人的“规则”:

            • 只有 php 代码的文件:永不结束标记
            • 将 php 与其他内容(即 HTML)混合在一起的文件:始终结束标记

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-09-02
              • 1970-01-01
              • 1970-01-01
              • 2012-09-16
              • 1970-01-01
              相关资源
              最近更新 更多