Home > php教程 > php手册 > 简单概括PHP的字符串中单引号与双引号的区别,php字符串

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

WBOY
Release: 2016-06-13 08:41:11
Original
1247 people have browsed it

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

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

单引号与双引号的不同:

  • " "双引号里面的字段会经过编译器解释,然后再当作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

Copy after login

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

echo "This is a string"; 
Copy after login

会转变为:

ECHO    'This is a string' 
Copy after login

echo 'This is a string'; 
Copy after login

则变成

 ECHO    'This is a string' 
Copy after login

,是一样的
如果是

echo "This is a $variable"; 
Copy after login

则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 

Copy after login

echo "This is a " . $variable; 
Copy after login

则会变成

CONCAT    ~0 'This is a ' !0 

2 ECHO      ~0 

Copy after login

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template