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

我尝试尽可能多地使用单引号,我注意到我不能在单引号中使用 n。我知道我可以按回车键直接输入换行符,但这会破坏代码的缩进。

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

305333 次浏览

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

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

如果您正在浏览器上进行 echoing,则可以在语句中使用 <br/>:

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

您可能需要考虑使用 < <

例如:。

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

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

不,根据 文件,PHP 不识别单引号中的特殊符号。还有没有单一的理由尽可能多地使用单引号

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

$foo = 'That\'s great';

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

$bar = 'That\'s
cheating';

仅供参考,不用双引号就可以把换行符放到字符串中:

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

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

echo 'hollow world' . PHP_EOL;

使用常量 PHP _ EOL,那么它也是独立于操作系统的。

在 PHP 中使用单引号和双引号是有区别的

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

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

我们在百万分之一秒的范围内,但是在性能上是有区别的。我建议您尽可能使用单引号,即使知道您不能感觉到这种性能提高。但在性能方面,我是一个偏执的开发人员。

如果你有一个变量:

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

你可以用这个:

echo 'Hello World' . "\n";

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

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

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

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

这样可以避免连接单引号和双引号字符串这种看起来很傻的符号。

这对我很有效:

print_r('Hello world'.PHP_EOL);