这两种字符串有什么区别?

2016 年 6 月 30 日
 Mac
$text='a\tb';

$text1='a'."\t".'b';

QRcode::png($text);

最终输出 TEXT 和 TEXT1 是不一样的
2712 次点击
所在节点    PHP
6 条回复
hjxx
2016 年 6 月 30 日
双引号 \t 会被解析成 tab
单引号 \t 不解析
Mac
2016 年 6 月 30 日
@hjxx 现在有个问题了,我一个很长的字符串,中间有 N 多;号,数量不定,要怎么把他们替换成可以被解析的 tab ?
daniellu
2016 年 6 月 30 日
正则表达式啊, preg_replace.
Mac
2016 年 6 月 30 日
@daniellu 搞定,原来正则里也要双引号,感谢两位
raincious
2016 年 6 月 30 日
@Mac

$str = str_replace(';', "\t", $str);

http://php.net/manual/en/function.str-replace.php

PHP 里,使用双引号包裹的字符串意味着 **解析器** 会对其进行解析,包括将转义字符转义。

单引号则表示原字符,其中的内容不会被解析器解析。这就是为什么你那两个字符串“看起来”一样,其实不一样。
zingl
2016 年 6 月 30 日
有 php 之前、至少从 shell 开始就是双引号转义单引号不转义了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/289403

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX