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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果在文件末尾省略PHP块的结束标记,是否会删除任何换行符或空格(如果存在于相应的文件中)?相关的知识,希望对你有一定的参考价值。

我正在使用php 7.1.12

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

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

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

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

答案

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

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

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

手段

<?php echo '' ?>






将输出3个换行符。

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

<?php echo '';






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

PSR-2指南2.2. Files

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

如果您的文件是纯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

以上是关于如果在文件末尾省略PHP块的结束标记,是否会删除任何换行符或空格(如果存在于相应的文件中)?的主要内容,如果未能解决你的问题,请参考以下文章

PHP的基本语法—PHP标记

手动检查 php 中的 jpeg 文件末尾标记 ffd9 (?) 以捕获截断错误

php

PHP——基本使用

php标记,变量,常量

phpstuy ftp 和phpstudy 冲突吗