代码之家  ›  专栏  ›  技术社区  ›  mattalxndr

PHP模板中的换行奇怪

  •  1
  • mattalxndr  · 技术社区  · 15 年前

    我已经处理这件事很多年了,但它太挑剔了,我从来没有研究过它。但我一直在想。

    在PHP模板中,如果我运行此模板:

    <p>
    <?php echo 'Between "?>" and "</p>" is one linebreak.'; ?>
    </p>
    
    <p>
    <?php echo 'Between "?>" and "</p>" is one space, then one linebreak.'; ?> 
    </p>
    
    <p>
    <?php echo 'Between "?>" and "</p>" is two linebreaks.'; ?>
    
    </p>
    

    这是输出:

    <p>
    Between "?>" and "</p>" is one linebreak.</p>
    
    <p>
    Between "?>" and "</p>" is one space, then one linebreak. 
    </p>
    
    <p>
    Between "?>" and "</p>" is two linebreaks.
    </p>
    

    我不理解这种行为。为什么它忽略了一个换行符,就好像它不在那里一样(如第一个例子中)?

    1 回复  |  直到 15 年前
        1
  •  5
  •   thomasrutter    15 年前

    如果PHP解释器在关闭后立即出现换行符,则它将忽略换行符。 ?> . 这是为了与文本编辑器兼容,文本编辑器总是在文件的最后一行添加换行符。

    这在PHP手册中有简要的介绍 here here .

    如果在换行符之前有一个空格,那么它的输出是正常的,只有在换行符之后,它才会忽略它。