PHP:是否有理由在文件末尾添加换行符

Chr*_*olb 29 php coding-style newline git-commit

当我向github提交一个php文件时,我收到消息"文件末尾没有换行符".

这只是一个警告,我记得,无论出于何种原因,在文件末尾都有换行符是件好事.

但为什么?它是一个久违的残余,它仍然有优势还是甚至需要在PHP?如果是的话,出于什么原因?

jmo*_*eno 21

它不是PHP所必需的,但它可能会导致某些diff工具出现问题.警告只是一个警告,如果需要可以忽略,但我建议遵循约定并将最后一个字符作为换行符.


num*_*web 11

这是PSR-2惯例,声明:

所有PHP文件必须以一个空行结束.

为什么?因为应该对文件进行操作的实用程序(如diff实用程序)可能无法很好地处理不以换行符结尾的行; 这就是POSIX在其中一条规则中的陈述:

3.206线

零个或多个非字符加上终止字符的序列.

因此,不以换行符结尾的行不被视为实际行.这意味着:如果您的最后一行是一行代码(而不是空行),那么这些工具可能会忽略它们,并可能导致程序中断!

  • 你生活在过去,[PSR-12 #2.2 文件](https://www.php-fig.org/psr/psr-12/#22-files) 引用:`所有 PHP 文件必须以非-空行` (3认同)

cos*_*mos 10

现在,在PSR-12 #2.2 文件中:

所有 PHP 文件必须仅使用 Unix LF(换行)行结尾。所有 PHP 文件必须以非空行结尾,并以单个 LF 终止。


Eli*_*uft 6

警告是为了帮助您检测可能有缺陷的截断文件,假设最后没有换行的文件被怀疑被截断.

除此之外,避免源文件没有终止换行的唯一原因是避免警告!