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

yipeiwu_com5年前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

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中对汉字进行unicode编码和解码的实现方法(必看)

实例如下: //将内容进行UNICODE编码 function unicode_encode($name) { $name = iconv('UTF-8', 'UCS-2', $...

php数据库密码的找回的步骤

1.用系统管理员登陆系统。 2.停止MySQL的服务。 3.进入命令窗口,然后进入MySQL的安装目录,比如我的安装目录是c:mysql,进入C:mysqlbin 4.跳过权限检查启动M...

PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)

通过curl_setopt()函数可以方便快捷的抓取网页(采集很方便大笑),curl_setopt 是PHP的一个扩展库      使用条件:需...

php和nginx交互实例讲解

php和nginx交互实例讲解

Nginx与PHP交互过程的7步走(用户对动态PHP网页访问过程) step1:用户将http请求发送给nginx服务器(用户和nginx服务器进行三次握手进行TCP连接)。...

php使用GD库创建图片缩略图的方法

本文实例讲述了php使用GD库创建图片缩略图的方法。分享给大家供大家参考。具体分析如下: 上传页面的静态html代码: <html> <head> <...