php 单引号双引号 效率,PHP的单引号和双引号 字符串效率

简单的回答,显然是苍白无力的。今天我们来做个实验,看看到底单引号和双引号有什么区别,谁快,谁慢。

测试代码如下:

复制代码代码如下:

$single_quotes='ThisisaString';

$double_quotes="ThisisaString";

echo$single_quotes;

echo$double_quotes;

$var='String';

$single_quotes_var='Thisisa'.$var;

$double_quotes_var="Thisisa$var";

echo$single_quotes_var;

echo$double_quotes_var;

$var='This';

$single_quotes_var_pre=$var.'isaString';

$double_quotes_var_pre="$varisaString";

echo$single_quotes_var_pre;

echo$double_quotes_var_pre;

?>

接下来,让我们以前文章提到过的Opcodes生成器来看看,最终我们的这段代码是怎么被执行的:

复制代码代码如下:

Branchanalysisfromposition:0

Returnfound

filename:/home/xinchen/string.php

functionname:(null)

numberofops:24

compiledvars:!0=$single_quotes,!1=$double_quotes,!2=$var,!3=$single_quotes_var,!4=$double_quotes_var,!5=$single_quotes_var_pre,!6=$double_quotes_var_pre

line#opfetchextreturnoperands

-------------------------------------------------------------------------------

20ASSIGN!0,'This+is+a+String'

31ASSIGN!1,'This+is+a+String'

42ECHO!0

53ECHO!1

74ASSIGN!2,'String'

85CONCAT~3'This+is+a+',!2

6ASSIGN!3,~3

97INIT_STRING~5

8ADD_STRING~5~5,'This+is+a+'

9ADD_VAR~5~5,!2

10ASSIGN!4,~5

1111ECHO!3

1212ECHO!4

1413ASSIGN!2,'This'

1614CONCAT~8!2,'+is+a+String'

15ASSIGN!5,~8

1716INIT_STRING~10

17ADD_VAR~10~10,!2

18ADD_STRING~10~10,'+is+a+String'

19ASSIGN!6,~10

1920ECHO!5

2021ECHO!6

2222RETURN1

23*ZEND_HANDLE_EXCEPTION

注意第0到第3条opline,可以看出在没有使用变量替换的情况下,双引号的和单引号所产生的Opcodes是一样的。

再来看:第4到第12条,可以发现,在使用变量替换的情况下,使用双引号和单引号所生成的Opcodes是不一样的,我们来分析双引号情况下的Opcodes:

7INIT_STRING初始化一个字符串变量,存放在~5临时变量中。

8ADD_STRING将第一部分字符串写入。

9ADD_VAR将变量替换的字符串写入。

第16-28行同理。

从这里我们可以发现,在使用双引号的情况下和使用单引号的情况下,同样的逻辑,所经历的执行确实不一样的(因为,Opcodes对于PHP来说就是最终的执行代码)。单单从生成的Opcods数量来说,就已经足以证明确实是使用单引号会快了。

至于编译阶段,双引号和单引号的区别也是很大的,我就举个数字来说明:在scanning阶段,对于双引号的词法规则有14条,而对于单引号,仅仅只有6条。

呵呵,是不是经过这样的分析,你会更清楚的了解到以后该怎么使用单引号和双引号了呢?

顺便说一句,对于不需要变量替换的纯字符串,大家都知道,因为在C/C++中,双引号才表示字符串,所以这种情况下,还是使用双引号的好。

另外对于W3C标准来说,HTML中的属性值应该是使用双引号来包含的,所以不要习惯了单引号,到处滥用哦

您可能感兴趣的文章:phpinclude加载文件两种方式效率比较php中读写文件与读写数据库的效率比较分享PHP字符串长度判断效率更高的方法PHP遍历数组的三种方法及效率对比分析php程序效率优化的一些策略小结关于php几种字符串连接的效率比较(详解)PHP中3种生成XML文件方法的速度效率比较PHP静态延迟绑定和普通静态效率的对比

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值