Я хотел бы добавить ответ, который обращается к «Когда не , чтобы использовать это», поскольку это еще не было покрыто, и могу вообразить, что это используется вслепую, и никто не замечает, что есть проблема до позже по линии. Отчасти это несколько противоречит некоторым из существующих ответов.
Если вы выводите на веб-страницу в HTML, особенно текст в <textarea>
, <pre>
или <code>
, вы, вероятно, всегда захотите использовать \n
, а не PHP_EOL
.
Причина этого заключается в том, что, хотя код может работать хорошо на одном сервере, который является платформой, подобной Unix, при развертывании на хосте Windows (например, платформе Windows Azure) он может изменить способ отображения страниц. в некоторых браузерах (в частности, Internet Explorer - в некоторых версиях будут отображаться как \ n, так и \ r).
Я не уверен, что это все еще проблема, начиная с IE6, или нет, так что это может быть довольно спорным, но, кажется, стоит упомянуть, если это помогает людям побуждать думать о контексте. Могут быть и другие случаи (например, строгий XHTML), в которых внезапный вывод \r
на некоторых платформах может вызвать проблемы с выводом, и я уверен, что есть и другие крайние случаи, подобные этому.
Как уже заметил кто-то, вы не захотите использовать его при возврате заголовков HTTP - так как они всегда должны следовать RFC на любой платформе.
Я бы не использовал его для обозначения разделителей в файлах CSV (как кто-то предлагал). Платформа, на которой работает сервер, не должна определять окончания строк в генерируемых или потребляемых файлах.