What will line ending cause when programming?

1.9k views Asked by At

There is a thing make me puzzled in 2.2 of PSR-2 document.

enter image description here

All I know is that different os use different line ending as default :

  • windows:CRLF
  • unix:LF
  • mac:CR

I want to know why should "All PHP files MUST use the Unix LF(linefeed) line ending" . Or in other word, what will line ending cause ?

3

There are 3 answers

4
balintant On BEST ANSWER

The main reason behind this is scv (Source Code Versioning), where changing line-endings cause unnecessary differences and conflicts.

Secondly, we usually serve our services on Linux, which is based on Unix, which use the LF file ending.

The first one causes the need of a Standard, and the second one tells you why you should use LF Standard.

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

Update: also note that, whilst PHP - and imo. all the other scripting languages - doesn't really depend on a specific line-ending, in other languages this might cause issues.

0
lintabá On

PSR is made to resolve the coding style conflicts. EOL is a point of conflict, therefore it defined it in some way. The PSR working group voted in the question of line_endings as ?: 5, LF: 17. https://groups.google.com/forum/#!msg/php-fig/c-QVvnZdMQ0/TdDMdzKFpdIJ

Even if it doesn't cause any syntactical difference, in the PSR-2 standard it had been defined this way.

2
ByteSlinger On

Using other line endings will still work in your PHP programs. But the purpose of that rule is stated in the beginning of that page (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.