用单引号在PHP中打印换行符

时间:2010-03-28 05:15:07

标签: php string

我尝试尽可能使用单引号,我注意到我不能在单引号中使用\ n。我知道我可以通过按回车字面输入换行符,但这会搞砸我代码的缩进。

当我使用单引号时,是否有某些ASCII字符或其他可以输入的字符会生成换行符?

12 个答案:

答案 0 :(得分:130)

不,因为单引号甚至禁止替换十六进制代码。

echo 'Hello, world!' . "\xA";

答案 1 :(得分:93)

echo 'hollow world' . PHP_EOL;

使用常量PHP_EOL,它也是OS独立的。

答案 2 :(得分:24)

如果您echo使用浏览器,则可以在语句中使用<br/>

echo 'Will print a newline<br/>';
echo 'But this wont!';

答案 3 :(得分:22)

仅供参考,可以在没有双引号的情况下将换行符添加到字符串中:

printf('Please%1$sgive%1$sme%1$snewlines%1$s', PHP_EOL);

哪个可能有用如果你对双引号的非理性恐惧没有界限。虽然我担心这种治疗方法可能比疾病更糟糕。

答案 4 :(得分:8)

在PHP中使用单个VS双引号存在差异

e.g: 1. echo '$var\n'; 2. echo "$var\n";

  • in 1,PHP将按字面打印:$var\n
  • in 2,PHP必须在内存中搜索$var的位置,并返回该位置的值,同样,它必须解析\ n作为新行字符并打印该结果< / LI>

我们处于百万分之一秒的范围内,但性能存在差异。我建议你尽可能使用单引号,即使知道你也无法察觉这种性能提升。但在性能方面,我是一个偏执的开发者。

答案 5 :(得分:6)

单引号中唯一可以使用的转义序列是单引号本身。

$foo = 'That\'s great';

您可以在使用单引号创建的字符串中插入新行的唯一方法是插入文字换行符

$bar = 'That\'s
cheating';

答案 6 :(得分:3)

您可能需要考虑使用&lt;&lt;&lt;&lt;

e.g。

<<<VARIABLE
this is some
random text
that I'm typing 
here and I will end it with the 
same word I started it with
VARIABLE

更多信息:http://php.net/manual/en/language.types.string.php

顺便说一下 - 有些编码环境不知道如何处理上述语法。

答案 7 :(得分:1)

我想知道为什么没有人添加使用功能chr()的替代方法:

echo 'Hello World!' . chr(10);

或者,如果要重复一百万次,则效率更高:

define('C_NewLine', chr(10));
...
echo 'Hello World!' . C_NewLine;

这避免了连接单引号和双引号字符串的愚蠢表示法。

答案 8 :(得分:0)

不,根据documentation,PHP在单引号中不识别特殊符号。 没有任何理由尽可能使用单引号

答案 9 :(得分:0)

如果您有变量:

$your_var = 'declare your var';
echo 'i want to show my var here'.$your_var.'<br>';

答案 10 :(得分:-1)

您可以使用此:

echo 'Hello World' . "\n";

答案 11 :(得分:-1)

这对我来说很好:

print_r('Hello world'.PHP_EOL);