如果在文件末尾省略PHP块的结束标记,是否会删除任何换行符或空格(如果存在于相应的文件中)?

问题描述 投票:0回答:2

我正在使用PHP 7.1.12

我知道PHP代码块的结束标记自动意味着分号,因此我们不需要使用分号来终止PHP块的最后一行。

块的结束标记将包括紧接着的新行(如果存在)。

所以,我的问题是假设我有一个包含很少语句的PHP代码块,我在最后一个有效代码行之后添加十个换行符然后我没有添加结束PHP标记,即?>

那么,在上面的情况下,PHP会删除那些额外的10个换行符,或者我添加了哪些不需要的空格?

php tags whitespace codeblocks linefeed
2个回答
1
投票

我知道PHP代码块的结束标记自动意味着分号,因此我们不需要使用分号来终止PHP块的最后一行。

意味着<?php echo '' ?>很好。

块的结束标记将包括紧接着的新行(如果存在)。

手段

<?php echo '' ?>
\n
\n
\n

将输出3个换行符。

但我想你的问题是,以下是否会输出换行符。

<?php echo '';
\n
\n
\n

它不会,因为同样的原因PHP注释不会输出。

PSR-2指南2.2. Files

  • 所有PHP文件必须使用Unix LF(换行)行结尾。
  • 所有PHP文件必须以一个空行结束。 (不是10; p)
  • 必须从仅包含PHP的文件中省略关闭的?>标记。

1
投票

如果您的文件是纯PHP,即您没有在HTML文件中使用多个PHP块,则应始终避免关闭标记。关闭标记表示您的脚本已完成,并将代码的下一部分视为HTML。如果您的HTML和PHP在您的代码库中是分开的,您应该使用<?php标记启动该文件,然后再编写PHP脚本。该文件中的所有行都将被视为PHP,并且只有回显的部分将被打印在屏幕上。

回到你的问题,你在上一个PHP代码行之后添加的那10行将被视为PHP脚本的一部分,并且在脚本中将被视为空行,而不是HTML中的空行。

一些参考资料更多信息:https://softwareengineering.stackexchange.com/questions/89553/closing-tag-on-php-files https://www.sitepoint.com/should-you-close-your-php-code-tags/ https://wordpress.stackexchange.com/questions/210765/to-close-or-not-to-close-php

© www.soinside.com 2019 - 2024. All rights reserved.