简单概括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 相关文章推荐
一个查看session内容的函数
Oct 09 PHP
php与XML、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
php学习之运算符相关概念
Jun 09 PHP
php数组转换js数组操作及json_encode的用法详解
Oct 26 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 PHP
ThinkPHP框架实现session跨域问题的解决方法
Jul 01 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
Feb 26 PHP
利用php_imagick实现复古效果的方法
Oct 18 PHP
PHP实现找出链表中环的入口节点
Jan 16 PHP
PHP常用函数之根据生日计算年龄功能示例
Oct 21 PHP
PHP中的异常处理机制深入讲解
Nov 10 PHP
PHP连接MySQL数据库三种实现方法
Dec 10 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
php xml实例 留言本
2009/03/20 PHP
PHP数组传递是值传递而非引用传递概念纠正
2013/01/31 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
layui文件上传实现代码
2017/05/20 Javascript
深入理解Angular中的依赖注入
2017/06/26 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
OpenLayers3实现鼠标移动显示坐标
2020/09/25 Javascript
python根据出生年份简单计算生肖的方法
2015/03/27 Python
django+xadmin+djcelery实现后台管理定时任务
2018/08/14 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
python实现udp聊天窗口
2020/03/31 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
python实现邮件循环自动发件功能
2020/09/11 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
夜大毕业生自我鉴定
2013/10/31 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
加强作风建设心得体会
2014/10/22 职场文书
人事专员岗位职责
2015/02/03 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
详解Javascript实践中的命令模式
2021/05/05 Javascript
python之基数排序的实现
2021/07/26 Python
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript