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安装攻略:常见问题解答(三)
Oct 09 PHP
IIS+PHP+MySQL+Zend配置 (视频教程)
Dec 13 PHP
php修改时间格式的代码
May 29 PHP
PHP无刷新上传文件实现代码
Sep 19 PHP
关于尾递归的使用详解
May 02 PHP
解析php中memcache的应用
Jun 18 PHP
ThinkPHP字符串函数及常用函数汇总
Jul 18 PHP
PHP编程中的常见漏洞和代码实例
Aug 06 PHP
PHP高级编程实例:编写守护进程
Sep 02 PHP
php采用file_get_contents代替使用curl实例
Nov 07 PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
Nov 13 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
我常用的几个类
2006/10/09 PHP
PHP 第三节 变量介绍
2012/04/28 PHP
php实现利用phpexcel导出数据
2013/08/24 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
2014/03/12 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
JS去掉第一个字符和最后一个字符的实现代码
2014/02/20 Javascript
jquery判断浏览器后退时候弹出消息的方法
2014/08/11 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
js实现带有介绍的Select列表菜单实例
2015/08/18 Javascript
js实现华丽的九九乘法表效果
2017/03/29 Javascript
Vue自定义toast组件的实例代码
2018/08/15 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
Pandas库之DataFrame使用的学习笔记
2019/06/21 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
python3.8下载及安装步骤详解
2020/01/15 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
什么是Python变量作用域
2020/06/03 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
教师党员思想汇报
2014/01/06 职场文书
工作疏忽检讨书
2014/01/25 职场文书
思想品德自我评价
2014/02/04 职场文书
视光学毕业生自荐书范文
2014/02/13 职场文书
学习优秀党务工作者先进事迹材料思想报告
2014/09/17 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
Python OpenCV实现图像模板匹配详解
2022/04/07 Python