Что будет причиной окончания строки при программировании?

В 2.2 документа PSR-2 меня озадачивает одна вещь.

Все, что я знаю, это то, что разные ОС используют разные окончания строки по умолчанию:

  • окна:CRLF
  • UNIX:LF
  • Mac:CR

Я хочу знать, почему "Все файлы PHP ДОЛЖНЫ использовать конец строки Unix LF(перевод строки)" . Или, другими словами, что будет причиной окончания строки?

3 ответа

Решение

Основной причиной этого является 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/

Даже если это не вызывает никаких синтаксических различий, в стандарте PSR-2 это было определено таким образом.

Использование других окончаний строк все равно будет работать в ваших программах PHP. Но цель этого правила указана в начале этой страницы ( PSR-2):

Правила стиля в данном документе основаны на общих чертах между различными проектами-участниками. Когда разные авторы сотрудничают между несколькими проектами, это помогает иметь один набор руководящих принципов, которые будут использоваться среди всех этих проектов. Таким образом, выгода этого руководства заключается не в самих правилах, а в совместном использовании этих правил.

Другие вопросы по тегам