我尝试尽可能使用单引号,我注意到我不能在单引号中使用\n.我知道我可以通过按回车字面输入换行符,但这会搞砸我代码的缩进.
是否有一些ASCII字符或我可以输入的东西,当我使用单引号时会生成换行符?
Ign*_*ams 137
不,因为单引号甚至禁止替换十六进制代码.
echo 'Hello, world!' . "\xA";
Run Code Online (Sandbox Code Playgroud)
Cup*_*ups 98
echo 'hollow world' . PHP_EOL;
Run Code Online (Sandbox Code Playgroud)
使用常量PHP_EOL然后它也是OS独立的.
Ant*_*ney 25
如果您使用的是echo浏览器,则可以使用以下<br/>语句:
echo 'Will print a newline<br/>';
echo 'But this wont!';
Run Code Online (Sandbox Code Playgroud)
lee*_*ers 22
仅供参考,可以在没有双引号的情况下将换行符添加到字符串中:
printf('Please%1$sgive%1$sme%1$snewlines%1$s', PHP_EOL);
Run Code Online (Sandbox Code Playgroud)
这可能有用如果你对双引号的非理性恐惧没有界限.虽然我担心这种治疗方法可能比疾病更糟糕.
我想知道为什么没有人添加使用该函数的替代方法chr():
echo 'Hello World!' . chr(10);
Run Code Online (Sandbox Code Playgroud)
或者,如果你要重复一百万次,效率会更高:
define('C_NewLine', chr(10));
...
echo 'Hello World!' . C_NewLine;
Run Code Online (Sandbox Code Playgroud)
这避免了连接单引号和双引号字符串的看起来很傻的符号。
小智 8
在PHP中使用单个VS双引号是有区别的
例如:1.2 echo '$var\n';
.echo "$var\n";
$var\n$var,并返回该位置的值,同样,它必须解析\n作为新行字符并打印该结果我们处于百万分之一秒的范围内,但性能上存在差异.我建议你尽可能使用单引号,即使知道你也无法察觉这种性能提升.但在性能方面,我是一个偏执的开发者.
您可以在单引号中使用的唯一转义序列是单引号本身.
$foo = 'That\'s great';
Run Code Online (Sandbox Code Playgroud)
将单行插入到使用单引号创建的字符串中的唯一方法是插入文字换行符
$bar = 'That\'s
cheating';
Run Code Online (Sandbox Code Playgroud)