服务器之家

服务器之家 > 正文

简单概括PHP的字符串中单引号与双引号的区别

时间:2021-01-15 17:47     来源/作者:jackyrong

今天有个朋友问起,说下区别,顺便复习下。

单引号双引号的不同:

  • " "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。
  • ' '单引号里面的不进行解释,直接输出。 
  • 单引号解析的时间比双引号快 。
  • 单引号支持\转义符,双引号支持的转义符更多 。
?
1
2
3
4
5
$hello= 3;
echo "hello is $hello"; // 打印结果:hello is 3
echo 'hello is $hello'; // 打印结果: hello is $hello
echo "hello is $hello\n"; // 打印结果: hello is 2 (同时换行)
echo 'hello is $hello\n'; // 打印结果: hello is $hello\n

PS:
今天看到老外提到了PHP的单引号的问题,其中提到了有趣的东西,摘录如下:
其中说装了PHP扩展 Vulcan Logic Disassembler 后,可以看到PHP生成的中间码,
首先是:

?
1
echo "This is a string";

会转变为:

?
1
ECHO    'This is a string'

?
1
echo 'This is a string';

则变成

?
1
ECHO    'This is a string'

,是一样的
如果是

?
1
echo "This is a $variable";

则PHP产生的OPCODE为

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
INIT STRING ~0
 
2 ADD_STRING  ~0 ~0 'This'
 
3 ADD_STRING  ~0 ~0 ' '
 
4 ADD_STRING  ~0 ~0 'is'
 
5 ADD_STRING  ~0 ~0 ' '
 
6 ADD_STRING  ~0 ~0 'a'
 
7 ADD_STRING  ~0 ~0 ' '
 
8 ADD_VAR    ~0 ~0 !0
 
9 ECHO      ~0

?
1
echo "This is a " . $variable;

则会变成

?
1
2
3
CONCAT    ~0 'This is a ' !0
 
2 ECHO      ~0

可以见到,速度快很多了,用.连接的话

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部