PHP新行问题

时间:2009-09-09 22:48:22

标签: php syntax

简单的问题困扰着我......

我有一个功能:

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

    return $html
}

echo $spitHTML();

为什么这实际上吐出了\ n的?

3 个答案:

答案 0 :(得分:5)

单引号字符串中使用的反斜杠不能用作转义字符(除了单引号本身)。

$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";

但这仅仅是品味问题:o)

答案 1 :(得分:4)

因为您使用的是单引号 - 更改为双引号,它会按预期运行。

请参阅Single quoted strings的文档。

答案 2 :(得分:3)

将'更改为“:)(之后,会注意到所有特殊字符和变量)

$html = "
<div>This is my title</div>\n
<div>This is a second div</div>";