Проблема новой строки в PHP - PullRequest
0 голосов
/ 10 сентября 2009

простая проблема, сбивающая меня с толку ...

у меня есть функция:

function spitHTML() {
    $html = '
    <div>This is my title</div>\n
    <div>This is a second div</div>';

    return $html
}

echo $spitHTML();

Почему это на самом деле выплевывает \ n's?

Ответы [ 3 ]

5 голосов
/ 10 сентября 2009

Обратная косая черта, используемая в строках одинарных кавычек, не работает как escape-символы (кроме самой самой одинарной кавычки).

$string1 = "\n"; // this is a newline
$string2 = '\n'; // this is a backslash followed by the letter n
$string3 = '\''; // this is a single quote
$string3 = "\""; // this is a double quote

Так зачем вообще использовать одинарные кавычки? Ответ прост: если вы хотите напечатать, например, HTML-код, в котором, естественно, много двойных кавычек, оборачивать строку в одинарные кавычки гораздо удобнее для чтения:

$html = '<div class="heading" style="align: center" id="content">';

Это намного лучше, чем

$html = "<div class=\"heading\" style=\"align: center\" id=\"content\">";

Кроме того, поскольку PHP не нужно анализировать строки одинарных кавычек для переменных и / или экранированных символов, он обрабатывает эти строки немного быстрее.

Лично я всегда использую одинарные кавычки и добавляю символы новой строки из двойных кавычек. Это выглядит как

$text = 'This is a standard text with non-processed $vars followed by a newline' . "\n";

Но это всего лишь вопрос вкуса: о)

4 голосов
/ 10 сентября 2009

Поскольку вы используете одинарные кавычки - переключитесь на двойные кавычки, и все будет работать так, как вы ожидаете.

См. Документацию для Строки в одинарных кавычках .

3 голосов
/ 10 сентября 2009

Измените 'на ":) (После этого будут замечены все специальные символы и переменные)

$html = "
<div>This is my title</div>\n
<div>This is a second div</div>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...