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


Posted in PHP onMay 07, 2016

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

单引号与双引号的不同:

  • " "双引号里面的字段会经过编译器解释,然后再当作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 相关文章推荐
PHP开发中常用的8个小技巧
Aug 27 PHP
php discuz 主题表和回帖表的设计
Mar 13 PHP
php设计模式 Command(命令模式)
Jun 26 PHP
php用户注册页面利用js进行表单验证具体实例
Oct 17 PHP
php实现refresh刷新页面批量导入数据的方法
Dec 23 PHP
PHP使用内置dir类实现目录遍历删除
Mar 31 PHP
一个PHP实现的轻量级简单爬虫
Jul 08 PHP
PHP环境中Memcache的安装和使用
Nov 05 PHP
PHP实现可精确验证身份证号码的工具类示例
May 31 PHP
PHP实现简单登录界面
Oct 23 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
Mar 09 PHP
PHP检测链接是否存在的代码实例分享
May 06 #PHP
一波PHP中cURL库的常见用法代码示例
May 06 #PHP
PHP实现的简单分页类及用法示例
May 06 #PHP
PHP实现的多文件上传类及用法示例
May 06 #PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
May 06 #PHP
php将一维数组转换为每3个连续值组成的二维数组
May 06 #PHP
PHP递归遍历多维数组实现无限分类的方法
May 06 #PHP
You might like
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
php登陆页的密码处理方式分享
2013/10/14 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
js event事件的传递与冒泡处理
2009/12/06 Javascript
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
jQuery中noConflict()用法实例分析
2015/02/08 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
JS添加删除DIV的简单实例
2016/07/08 Javascript
vue实现树形菜单效果
2018/03/19 Javascript
vue组件(全局,局部,动态加载组件)
2018/09/02 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
原生js实现无缝轮播图
2020/01/11 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
2020/11/09 Javascript
[03:18]【TI9纪实】社区大触GL与木木
2019/08/25 DOTA
Python简单实现子网掩码转换的方法
2016/04/13 Python
python实现图书馆研习室自动预约功能
2018/04/27 Python
Python列表对象实现原理详解
2019/07/01 Python
python实现KNN分类算法
2019/10/16 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
2019/12/25 Python
python绘制分布折线图的示例
2020/09/24 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
瑞士香水购物网站:Parfumcity.ch
2017/01/14 全球购物
工程师自我评价怎么写
2013/09/19 职场文书
大学生如何写自荐信
2014/01/08 职场文书
医学生个人求职信范文
2014/02/07 职场文书
党员志愿者活动总结
2014/06/26 职场文书
个人德育工作总结
2015/03/05 职场文书
部队2015年终工作总结
2015/04/02 职场文书
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL
MySQL 使用事件(Events)完成计划任务
2021/05/24 MySQL
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android