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中SQL注入攻击与XSS攻击
Jun 10 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
Jul 28 PHP
ThinkPHP中使用ajax接收json数据的方法
Dec 18 PHP
PHP连接access数据库
Mar 27 PHP
php实现的mongodb操作类实例
Apr 03 PHP
php获取汉字拼音首字母的方法
Oct 21 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
Mar 01 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
Dec 19 PHP
PHP实现简易计算器功能
Aug 28 PHP
PHP实现的操作数组类库定义与用法示例
May 24 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
Feb 11 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的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
php实现session共享的实例方法
2019/09/19 PHP
取键盘键位ASCII码的网页
2007/07/30 Javascript
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
JavaScript内核之基本概念
2011/10/21 Javascript
js特殊字符转义介绍
2013/11/05 Javascript
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
JavaScript中函数声明与函数表达式的区别详解
2016/08/18 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
2018/09/16 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
用Python编写一个国际象棋AI程序
2014/11/28 Python
python出现&quot;IndentationError: unexpected indent&quot;错误解决办法
2017/10/15 Python
Python常见字典内建函数用法示例
2018/05/14 Python
详解Python:面向对象编程
2019/04/10 Python
python如何从文件读取数据及解析
2019/09/19 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
超市营业员岗位职责
2013/12/20 职场文书
小学运动会表扬稿
2014/01/19 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
基层党组织整改方案
2014/10/25 职场文书
白酒代理协议书范本
2014/10/26 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
2019年手机市场的调研报告2篇
2019/10/10 职场文书
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis