PHP: Is there a reason to put a newline at the end of file
当我向github提交一个php文件时,我收到消息"文件末尾没有换行符"。
这只是一个警告,我记得,无论出于何种原因,在文件末尾都有换行符是件好事。
但为什么? 它是一个久违的残余,它仍然有优势还是甚至需要在PHP? 如果是的话,出于什么原因?
它不是PHP所必需的,但它可能会导致某些diff工具出现问题。警告只是一个警告,如果需要可以忽略,但我建议遵循约定并将最后一个字符作为换行符。
这是PSR-2惯例,声明:
All PHP files MUST end with a single blank line.
为什么?因为应该对文件进行操作的实用程序(如diff实用程序)可能无法很好地处理不以换行符结尾的行;这就是POSIX在其中一条规则中的陈述:
3.206 Line
A sequence of zero or more non-
characters plus a
terminating character.
因此,不以换行符结尾的行不被视为实际行。这意味着:如果您的最后一行是一行代码(而不是空行),那么这些工具可能会忽略它们,并可能导致程序中断!
警告是为了帮助您检测可能有缺陷的截断文件,假设最后没有换行的文件被怀疑被截断。
除此之外,避免源文件没有终止换行的唯一原因是避免警告!
它可能来自C标准:http://c0x.coding-guidelines.com/5.1.1.2.html(第123段)。原因包括一些编译器或其他文本文本处理工具逐行处理源代码,因此最后一个源代码行也必须以换行符结束。
另请参阅:"文件末尾没有换行符"编译器警告 -