简单概括PHP的字符串中单引号与双引号的区别
程序员文章站
2024-04-02 11:23:04
今天有个朋友问起,说下区别,顺便复习下。
单引号与双引号的不同:
" "双引号里面的字段会经过编译器解释,然后再当作html代码输出。
' '单引号里面的...
今天有个朋友问起,说下区别,顺便复习下。
单引号与双引号的不同:
- " "双引号里面的字段会经过编译器解释,然后再当作html代码输出。
- ' '单引号里面的不进行解释,直接输出。
- 单引号解析的时间比双引号快 。
- 单引号支持\转义符,双引号支持的转义符更多 。
$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生成的中间码,
首先是:
echo "this is a string";
会转变为:
echo 'this is a string'
而
echo 'this is a string';
则变成
echo 'this is a string'
,是一样的
如果是
echo "this is a $variable";
则php产生的opcode为
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
而
echo "this is a " . $variable;
则会变成
concat ~0 'this is a ' !0 2 echo ~0
可以见到,速度快很多了,用.连接的话
上一篇: 学习PHP的数组总结【经验】
下一篇: Thinkphp单字母函数使用指南