\n或\n在php echo中不打印

Alb*_*oti 3 php string

可能重复:
用单引号在PHP中打印换行符php中单引号
和双引号字符串之间的差异

$unit1 = 'paragrahp1';
$unit2 = 'paragrahp2';
echo '<p>' . $unit1 . '</p>\n';
echo '<p>' . $unit2 . '</p>';
Run Code Online (Sandbox Code Playgroud)

这显示(在查看源上):

<p>paragraph1</p>\n<p>paragraph2</p>
Run Code Online (Sandbox Code Playgroud)

但不是我所期待的,不是打印新线,可能是什么?

Tom*_*rdt 34

PHP只在双引号()中解释转义字符(转义反斜杠\\和转义单引号\'除外")

这有效(产生换行符):

"\n"
Run Code Online (Sandbox Code Playgroud)

这不会导致换行:

'\n'
Run Code Online (Sandbox Code Playgroud)

  • ''\n''"工作"就好了.它会打印字符串`\n`,如文档所示. (3认同)

Sal*_*n A 6

转义序列(以及变量)在双引号heredoc字符串中起作用.所以将代码更改为:

echo '<p>' . $unit1 . "</p>\n";
Run Code Online (Sandbox Code Playgroud)

PS:一个澄清,单引号字符串确实接受两个转义序列:

  • \' 当你想在单引号字符串中使用单引号时
  • \\ 当你想要字面上使用反斜杠时


Kaf*_*oso 6

最好改用PHP_EOL(“行尾”)。它是跨平台的。

例如:

$unit1 = 'paragrahp1';
$unit2 = 'paragrahp2';
echo '<p>' . $unit1 . '</p>' . PHP_EOL;
echo '<p>' . $unit2 . '</p>';
Run Code Online (Sandbox Code Playgroud)