当一行末尾没有符号时,PHP会丢失换行符

时间:2014-07-10 10:38:26

标签: php

我从控制台运行这个PHP文件并获得一行而不是三行。为什么PHP会这样?我的换行符号在哪里?只有当PHP不是该行的最后一个语句时,它才会保留换行符。这有点奇怪而且不显而易见,不是吗?是否有关于此行为的文档条目或这是一个错误?

<?php ?>

foo = <?= 'foo' ?>
bar = <?= 'bar' ?>
baz = <?= 'baz' ?>

谢谢!

1 个答案:

答案 0 :(得分:1)

PHP的工作原理。如果结束标记?>后面紧跟换行符,则会从输出中删除该换行符(从技术上讲,它被视为结束标记的一部分)。

来自the docs

  

块的结束标记将包含紧接的尾随换行符(如果存在)。

请注意,这仅适用于结束标记后的第一个换行符;如果你添加更多,它们将正常出现在输出中。