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 PDO函数库详解
Apr 27 PHP
如何在php中正确的使用json
Aug 06 PHP
Yii调试SQL的常用方法
Jul 09 PHP
PHP里的单例类写法实例
Jun 25 PHP
PHP执行linux命令常用函数汇总
Feb 02 PHP
php+flash+jQuery多图片上传源码分享
Jul 27 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
PHP设计模式之模板模式定义与用法详解
Dec 20 PHP
PHP中$GLOBALS与global的区别详解
Mar 21 PHP
Yii Framework框架使用PHPExcel组件的方法示例
Jul 24 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中mail函数发送邮件失败的解决方法
2014/12/24 PHP
php面向对象中static静态属性和静态方法的调用
2015/02/08 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
js日期时间补零的小例子
2013/03/05 Javascript
jquery和javascript的区别(常用方法比较)
2013/07/04 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
2017/03/04 Javascript
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
js实现div色块碰撞
2020/01/16 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
python编写Logistic逻辑回归
2020/12/30 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
python3学习之Splash的安装与实例教程
2018/07/09 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
python双向链表原理与实现方法详解
2019/12/03 Python
通过代码实例了解Python异常本质
2020/09/16 Python
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
境外导游求职信
2014/02/27 职场文书
安全技术说明书
2014/05/09 职场文书
生物工程专业求职信
2014/09/03 职场文书
私人委托书格式
2014/09/10 职场文书
青年文明号申报材料
2014/12/23 职场文书
三严三实·严以用权心得体会
2016/01/12 职场文书
教育教学工作反思
2016/02/24 职场文书
总结Python使用过程中的bug
2021/06/18 Python
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
2021/08/02 MySQL