PHP中单引号与双引号的区别分析


Posted in PHP onAugust 19, 2014

①转义的字符不同

单引号和双引号中都可以使用转义字符(\),但只能转义在单引号中引起来的单引号和转义转义符本身。如果用双引号(“”)括起字符串,PHP懂得更多特殊字符串的转义序列。

<?php
$str1 = '\',\\,\r\n\t\v\$\"';
echo $str1,'<br />';
 
$str2 = "\",\\,a\r\n\tb\v\$\'";
echo $str2,'<br />';
?>

②对变量的解析不同
单引号字符串中出现的变量不会被变量值替代。即PHP不会解析单引号中的变量,而是将变量名原样输出。双引号字符串最重要的一点是其中的变量名会被变量值替代,即可以解析双引号中包含的变量。

<?php
$age = 20;
$str1 = 'I am $age years old';
$str2 = "I am $age years old";
echo $str1,'<br />'; // I am $age years old 
echo $str2,'<br />'; // I am 20 years old;
?>

③解析速度不同

单引号不需要考虑变量的解析,速度比双引号快.推荐用单引号.有的时候双引号也比较好用,比如在拼凑sql 语句

反斜杠

//使用单引号
echo ' this \n is \r the blog \t of \\ zhoumanhe \\'; 
//上面使用单引号输出的值是 this \n is \r the blog \t of \ zhoumanhe \
 
echo '
';
echo "
";
 
//使用双引号
echo "this \n is \r the blog \t of \\ zhoumanhe \\"; 
//上面使用双引号输出的值是 this is the blog of \ zhoumanhe \

使用sql

 假设查询条件中使用的是常量,例如:

select * from abc_table where user_name='abc';

SQL语句可以写成:

SQLstr = “select * from abc_table where user _name= ‘abc'” ;

假设查询条件中使用的是变量,例如:

$user_name = $_REQUEST['user_name']; //字符串变量


$user=array (”name”=> $_REQUEST['user_name‘,"age"=>$_REQUEST['age'];//数组变量

SQL语句就可以写成:

SQLstr = “select * from abc_table where user_name = ‘ ” . $user_name . ” ‘ “;
SQLstr = “select * from abc_table where user_name = ‘ ” . $user["name"] . ” ‘ “;

对比一下:

SQLstr=”select * from abc_table where user_name = ‘ abc ‘ ” ;
SQLstr=”select * from abc_table where user_name =' ” . $user _name . ” ‘ “;
SQLstr=”select * from abc_table where user_name =' ” . $user["name"] . ” ‘ “;

SQLstr可以分解为以下3个部分:

1:”select * from table where user_name = ‘ ” //固定SQL语句
2:$user //变量
3:” ‘ ”

附:大家也看到了 echo '<br/>'; html中的标签在单引号和双引号中都有效。

总结一下PHP引号使用原则

1.字符串的值用引号

2.PHP中尽量用单引号,HTML代码全部用双引号

3.在包含变量的时候,用双引号可以简化操作

4.复杂的情况下用大括号包起来

PHP引号还有一个用处就是,有的时候需要用php生成文本文件,换行符n需要用双引号才能好使,单引号则会直接把n当成字符输出。

使用总结:在字符串里面不需要加入 变量 或者 单引号(')和反斜杠(\) 时,尽量用单引号引字符串,因为省去了双引号检查处理转义和解析变量上面的时间。能用单引号尽量用单引号。

PHP 相关文章推荐
PHP学习之正则表达式
Apr 17 PHP
PHP文件打开、关闭、写入的判断与执行代码
May 24 PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 PHP
php中smarty变量修饰用法实例分析
Jun 11 PHP
php简单生成随机数的方法
Jul 30 PHP
yii2.0实现pathinfo的形式访问的配置方法
Apr 06 PHP
laravel学习教程之存取器
Jul 30 PHP
php自定义函数实现二维数组按指定key排序的方法
Sep 29 PHP
Phpstorm+Xdebug断点调试PHP的方法
May 14 PHP
PHP实现可精确验证身份证号码的工具类示例
May 31 PHP
php使用curl模拟多线程实现批处理功能示例
Jul 25 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
Mar 16 PHP
php版本的cron定时任务执行器使用实例
Aug 19 #PHP
PHP框架Swoole定时器Timer特性分析
Aug 19 #PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 #PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
Aug 19 #PHP
php解析json数据实例
Aug 19 #PHP
php中使用array_filter()函数过滤空数组的实现代码
Aug 19 #PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
Aug 19 #PHP
You might like
使用无限生命期Session的方法
2006/10/09 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
jquery+css+ul模拟列表菜单具体实现思路
2013/04/15 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
2013/09/15 Javascript
JavaScript的继承的封装介绍
2013/10/15 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
vue进行图片的预加载watch用法实例讲解
2018/02/07 Javascript
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
Python算法应用实战之队列详解
2017/02/04 Python
Python制作Windows系统服务
2017/03/25 Python
PyQT实现多窗口切换
2018/04/20 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
简单了解python的内存管理机制
2019/07/08 Python
基于python实现学生信息管理系统
2019/11/22 Python
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
草船借箭教学反思
2014/02/03 职场文书
高中英语教学反思
2014/02/04 职场文书
共产党员承诺书
2014/03/25 职场文书
需求分析说明书
2014/05/09 职场文书
学生偷窃检讨书
2014/09/25 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
Python爬取某拍短视频
2021/06/11 Python
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android
OpenFeign实现远程调用
2022/08/14 Java/Android