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

Есть вещь, которая заставляет меня озадачиться в 2.2 из Документ PSR-2.

введите описание изображения здесь

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

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

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

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. все остальные языки сценариев — на самом деле не зависят от конкретного окончания строки, в других языках это может вызвать проблемы.

2

Другие решения

PSR сделан для разрешения конфликтов стиля кодирования. EOL является точкой конфликта, поэтому он определил ее в некотором роде. Рабочая группа PSR проголосовала по вопросу line_endings как?: 5, LF: 17.
https://groups.google.com/forum/#!msg/php-fig/c-QVvnZdMQ0/TdDMdzKFpdIJ

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

2

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

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

2
По вопросам рекламы [email protected]