2010-03-28 87 views
105

尽量使用单引号,并且我注意到我不能在单引号中使用\ n。我知道我可以按回车键直接输入一个换行符,但是这会使我的代码缩进。在PHP中使用单引号打印换行符

是否有一些ASCII字符或我可以键入的内容,当我使用单引号时会产生换行符?

+0

如果有人对浏览器和终端(cli,命令行)都适用的解决方案感兴趣:http://stackoverflow.com/a/9665253/1923625 – 2017-03-20 18:03:11

回答

119

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

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

好的..我希望我不会有诉诸于..谢谢! – Matt 2010-03-28 05:18:43

+0

yessir。他在10分钟内回答了它。我必须等到接受,然后我忘了它哈哈。 – Matt 2010-03-28 07:46:18

+1

有没有其他选择呢?我需要在preg_replace中使用它,我不能使用双引号。 – 2012-04-18 11:35:02

21

如果你是echo ING到一个浏览器,就可以使用<br/>同你说:

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

不幸的是它更为终端目的..谢谢你的回应。 – Matt 2010-03-28 05:19:54

+0

不是问题,祝你好运。 – 2010-03-28 05:20:37

+0

perrrrrrfect !!! – SpaceDog 2012-11-18 22:12:07

3

你可能要考虑使用< < <

例如

<<<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

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

+1

啊,是的......但我仍然讨厌最后一个VARIABLE会破坏代码中的所有缩进这一事实......我使用HEREDOC语法遇到了很多(愚蠢的)错误 – Matt 2010-03-28 07:47:13

0

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

+0

使用单引号会有轻微的性能提升。另外,明确定义何时需要替换变量似乎是一种很好的做法。 – 2010-03-28 05:42:20

+3

@杰克逊有**没有**表现增加。以任何方式。忘记这些幼稚的谣言。不,不要谈论变量,而是谈论特殊的序列。如果你想要任何序列,一个变量或一个换行符被扩展 - 使用双引号,**就其目的而言**。而OP拒绝将其用于其目的是无稽之谈。 – 2010-03-28 06:03:19

5

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

$foo = 'That\'s great'; 

,你可以插入新行与单引号创建的字符串,唯一的办法是插入一个文本换行

$bar = 'That\'s 
cheating'; 
21

仅供参考,可以让新行成字符串没有双引号:

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

这可能是有用的如果你对双引号的不理智恐惧知道没有界限。虽然我担心这种治疗可能比疾病更糟糕。

+0

这不是一个恐惧..当你使用单引号时,你只会获得更好的性能,所以我尝试更频繁地使用它们,然后不..但是,这对于这个问题并不是一个很好的解决方案,它比它更麻烦价值。谢谢。 – Matt 2010-03-31 13:03:35

+4

我还没有测试过,但我敢打赌,使用双引号比使用'printf'或字符串连接的速度更快。 – 2013-05-08 06:10:21

+0

这并不总是非理性的,双引号可能会有问题,取决于你想要做什么。 'echo'例如,我想要这个吐出php代码。\ necho $ this-> stuff;';' – 2016-05-12 16:02:13

88
echo 'hollow world' . PHP_EOL; 

使用常量PHP_EOL,它也是操作系统无关的。

+1

PHP_EOL不起作用。 PHP 5.5.xx – 2014-06-19 22:56:12

+2

在PHP 5.6.9中工作 – 2015-07-17 04:56:11

+2

您通常不应该使用PHP_EOL,因为这会使您的代码依赖于它所运行的系统。例如。你的Linux服务器正在与另一台服务器通信,然后你的服务器被Windows取代......不好。 – Andreas 2016-05-09 18:12:46

8

有在PHP

使用单VS双引号

例如差: 1. echo '$var\n'; 2. echo "$var\n";

    在1
  • ,PHP将逐字打印:$var\n
  • 在2
  • ,PHP将不得不在内存中搜索$var的位置,并返回该位置的值,并且还必须将\ n分析为新行字符并打印出结果

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

+0

我鼓励您尝试搜索这样做的最佳方式,而不是使用双引号解决方案A.K.A懒惰开发人员解决方案。 – linuxdev 2011-10-09 00:57:54

+0

我知道做你想做的最好的方法:echo'foo',“\ n”; – linuxdev 2011-10-09 00:59:33

+2

快速的方法是'echo $ var +“\ n”;' – Hengjie 2013-11-28 13:14:55