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

时间:2017-12-16 05:32:12

标签: php tags whitespace codeblocks linefeed

我正在使用 PHP 7.1.12

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

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

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

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

2 个答案:

答案 0 :(得分: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 :(得分:1)

如果您的文件是纯PHP,即您没有在HTML文件中使用多个PHP块,则应始终避免关闭标记。 关闭标记表示您的脚本已完成,并将代码的下一部分视为HTML。如果您的HTML和PHP在您的代码库中是分开的,您应该使用if (b ==true) { editor.putBoolean("time"+id,false); editor.commit(); clock.setClockColor(R.color.material_brown_700); } else if (b == false) { editor.putBoolean("time"+id,true); editor.commit(); clock.setClockColor(R.color.material_green_700); } 标记启动该文件,然后再编写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