编程时换行会导致什么?

What will line ending cause when programming?

PSR-2 document的2.2中有一点让我很疑惑。

我只知道不同的 os 默认使用不同的行结尾:

我想知道为什么 "All PHP files MUST use the Unix LF(linefeed) line ending" 。或者换句话说,行结束会导致什么?

这背后的主要原因是 scv(源代码版本控制),其中更改行尾会导致不必要的差异和冲突。

其次,我们通常在 Linux 上提供我们的服务,它基于 Unix,使用 LF 文件结尾。

第一个导致需要标准,第二个告诉您为什么应该使用 LF 标准。

windows:CRLF = '\r\n'
unix:LF      = '\n'
mac:CR       = '\r' // macOS also changed to LF a long time ago btw.

更新: 还请注意,同时 PHP - 和 imo。所有其他脚本语言 - 并不真正依赖于特定的行尾,在其他语言中这可能会导致问题。

PSR 是为了解决编码风格冲突。 EOL 是一个冲突点,因此它以某种方式定义了它。 PSR 工作组在 line_endings 的问题中投票为 ?: 5, LF: 17。 https://groups.google.com/forum/#!msg/php-fig/c-QVvnZdMQ0/TdDMdzKFpdIJ

即使它不会造成任何语法差异,在 PSR-2 标准中也是这样定义的。

使用其他行结尾在您的 PHP 程序中仍然有效。但该规则的目的在该页的开头说明 (PSR-2):

The style rules herein are derived from commonalities among the various member projects. When various authors collaborate across multiple projects, it helps to have one set of guidelines to be used among all those projects. Thus, the benefit of this guide is not in the rules themselves, but in the sharing of those rules.