简单概括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 相关文章推荐
理解PHP5中static和const关键字的区别
Mar 19 PHP
php 防止单引号,双引号在接受页面转义
Jul 10 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
Oct 19 PHP
如何在smarty中增加类似foreach的功能自动加载数据
Jun 26 PHP
PHP小教程之实现双向链表
Jun 12 PHP
php实现redis数据库指定库号迁移的方法
Jan 14 PHP
PHP下载远程图片并保存到本地方法总结
Jan 22 PHP
PHP实现动态执行代码的方法
Mar 25 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
Apr 04 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
May 20 PHP
laravel框架关于搜索功能的实现
Mar 15 PHP
PHP http请求超时问题解决方案
Nov 13 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
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
thinkphp中连接oracle时封装方法无法用的解决办法
2013/06/17 PHP
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
PHP二维数组去重算法
2016/12/17 PHP
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
JQuery中Text方法用法实例分析
2015/05/18 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
用Python实现KNN分类算法
2017/12/22 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
职业技术学校毕业生推荐信
2013/12/03 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
四风个人对照检查材料思想汇报
2014/09/25 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
python 实现的截屏工具
2021/05/08 Python
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
如何理解及使用Python闭包
2021/06/01 Python
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js
利用Redis实现点赞功能的示例代码
2022/06/28 Redis