当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2019-07-30 11:15:19 浏览: 评论:0 

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

单引号与双引号的不同:

" "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。

' '单引号里面的不进行解释,直接输出。

单引号解析的时间比双引号快 。

单引号支持转义符,双引号支持的转义符更多 。

  1. $hello= 3; 
  2.  
  3. echo "hello is $hello"// 打印结果:hello is 3  
  4.  
  5. echo 'hello is $hello'// 打印结果: hello is $hello  
  6.  
  7. echo "hello is $hello\n"// 打印结果: hello is 2 (同时换行)  
  8.  
  9. 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为

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

echo "This is a " . $variable;

则会变成

CONCAT    ~0 'This is a ' !0 

ECHO      ~0

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

Tags: PHP单引号 PHP双引号

分享到: