今天有个朋友问起,说下区别,顺便复习下。
- " "双引号里面的字段会经过编译器解释,然后再当作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 |
可以见到,速度快很多了,用.连接的话