有一件事让我在PSR-2 document的2.2中感到困惑。
我所知道的是,不同的操作系统使用不同的行结尾作为默认值:
我想知道为什么“所有PHP文件必须使用Unix LF(换行)行结束”。换句话说,什么会结束?
答案 0 :(得分:2)
这背后的主要原因是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。所有其他脚本语言 - 并不真正依赖于特定的行结尾,在其他语言中这可能会导致问题。
答案 1 :(得分:2)
PSR用于解决编码风格冲突。 EOL是一个冲突点,因此它以某种方式定义它。 PSR工作组在line_endings问题上投票为?:5,LF:17。 https://groups.google.com/forum/#!msg/php-fig/c-QVvnZdMQ0/TdDMdzKFpdIJ
即使它没有引起任何语法上的差异,在PSR-2标准中也是这样定义的。
答案 2 :(得分:2)
使用其他行结尾仍然可以在PHP程序中使用。但该规则的目的在该页面的开头(PSR-2)陈述:
这里的风格规则源于其中的共性 各种成员项目。当各种作者合作时 多个项目,有助于使用一套指南 在所有这些项目中。因此,本指南的好处不在于 规则本身,但在分享这些规则。