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安装为Apache DSO
Oct 09 PHP
PHP开启gzip页面压缩实例代码
Mar 11 PHP
PHP 无限分类三种方式 非函数的递归调用!
Aug 26 PHP
php不使用copy()函数复制文件的方法
Mar 13 PHP
PHP实现C#山寨ArrayList的方法
Jul 16 PHP
php经典算法集锦
Nov 14 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
Jan 08 PHP
实例详解PHP中html word 互转的方法
Jan 28 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 PHP
PHP PDOStatement::errorCode讲解
Jan 31 PHP
PHP迭代器和生成器用法实例分析
Sep 28 PHP
PHP 对接美团大众点评团购券(门票)的开发步骤
Apr 03 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
PHP中“简单工厂模式”实例代码讲解
2012/09/04 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
jquery实现显示已选用户
2014/07/21 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
JS+CSS实现简易实用的滑动门菜单效果
2015/09/18 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
express启用https使用小记
2019/05/21 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2019/04/01 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
学生个人求职自荐信格式
2013/09/23 职场文书
保洁主管岗位职责
2013/11/20 职场文书
心得体会开头
2014/01/01 职场文书
毕业生就业协议书
2014/04/11 职场文书
党支部换届选举方案
2014/05/08 职场文书
幼儿园课题方案
2014/06/09 职场文书
大专生自荐书范文
2014/06/22 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书