PHP手册正在谈论哪些“拖尾的换行符”?这只是混淆手动阅读器和PHP学习者。请清除混淆
我正在阅读PHP手册。我在手册页上遇到了一个句子(URL:Instruction separation)。有这个说法页第一段:PHP手册正在谈论哪些“拖尾的换行符”?这只是混淆手动阅读器和PHP学习者。请清除混淆
同C或Perl,PHP要求在每个语句结束时 分号结束指令。一个 PHP代码块的结束标记自动意味着一个分号;您不需要有一个 分号终止PHP块的最后一行。 块的结束标记 将包含紧接的尾随换行符,如果其中一个为 存在。
我明白了一切写在上面段落除了最后强调句子即
用于该块的结束标记将包括立即尾随 换行符如果存在。
这句话是什么意思?这句话意味着什么?
这句话在我脑海中造成了困惑和疑惑。
- “Trailing Newline”在这里意味着什么?
- 是“换行符”,“换行”,HTML转义序列字符
"\n"
,<br>
的意义在这种情况下一样吗?或者是其他东西? - “拖尾换行符”在这里意味着什么?换行符是在关闭PHP标签(
?>
)之前出现的换行符,还是在关闭PHP标签(?>
) 后面出现的换行符?
有人请用简单,清晰和易于理解的语言回答我的所有问题。 如果你解释一些演示这个概念的工作代码例子,那将会好得多。
注:我已经提到了already asked question on stackoverflow about this但它的答案并不令人满意,它不完整和模糊。所以,请不要将我的问题标记为it的重复项。谢谢。
基本上说,如果你的代码中有?>
然后在下一行输出,那么在那里的输出中就不会有换行/换行/ \n
。
foo
<?php /* whatever */ ?>
bar
将输出
foo
bar
所以即使有三行代码,只有两个输出线。 请注意,如果您在该第二行上的?>
之后添加空格,则会出现一行,并且在foo
和bar
之间只有一个空格。这就是文档中“立即”部分的含义。
为了回答您的具体问题:
究竟什么是“尾随的换行符”这里是什么意思?
这意味着直接在?>
结束标记之后开始新行。
是“尾随的换行符”的意思,“换行”,HTML转义序列字符
"\n"
,<br>
在这种情况下一样吗?或者是其他东西?
的“换行符”是换行/换行/ \n
认为“路径”(自带直接后)?>
结束标记。所以换行,换行和\n
的意思基本上是一样的东西。它确实是而不是的意思是<br>
。
“拖尾的换行符”在这里意味着什么?在关闭PHP标签(
?>
)之前换行符或紧接在关闭PHP标签(?>
)之后出现的换行符?
目前换行符标签?>
只是后闭幕。这可以在我的例子中看到,?>
之前没有新行。
用于该块的结束标记将包括立即尾随的换行符如果存在。
我明白了一切写在除最后前款强调句即
什么是这个意思是:如果关闭标签是由一个换行符直接其次,新行被认为是实际上是结束标签的一部分。 所以我上面的例子被分析为:
-
foo
- >输出 “foo” 的 -
\n
- >输出一个换行 -
<?php
- >开始处理PHP /* whatever */
-
?>\n
- >停止处理PHP -
bar
- >输出“bar”
如果是这样,那么它与手册中的陈述相矛盾。正如上一句话中提到的那样,块的结束标记将包含紧接的尾随换行符(即根据您是换行符/换行符/ \ n)(如果存在换行符)。你在回答时说,在结束标记之后的相同尾行(即换行符/换行符/ \ n)不包括在内,它将被PHP结束标记删除?>请清除混淆并相应地修改你的答案。 – user2839497
在您链接到的文档页面上,它说:“如果存在一个块,则该块的结束标记将包括紧接的尾随换行符。”我把它看作是“如果在块的结束标记之后有一个换行符,则该换行符被视为结束标记的一部分”;由于换行符是结束标记的“一部分”,因此它不会在输出中结束。这是否清除你的困惑? –
查看https://stackoverflow.com/a/27102974/661872 –
@劳伦斯·凯伦:那个答案不那么清楚。它并不清楚我所有的疑虑。我需要更多细节和准确的答案来解决我的疑惑。谢谢。 – user2839497