Что будет причиной окончания строки при программировании?
В 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):
Правила стиля в данном документе основаны на общих чертах между различными проектами-участниками. Когда разные авторы сотрудничают между несколькими проектами, это помогает иметь один набор руководящих принципов, которые будут использоваться среди всех этих проектов. Таким образом, выгода этого руководства заключается не в самих правилах, а в совместном использовании этих правил.