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.MVC的模板标签系统(四)
Sep 05 PHP
PHP学习之PHP表达式
Oct 09 PHP
检查用户名是否已在mysql中存在的php写法
Jan 20 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
新浪微博OAuth认证和储存的主要过程详解
Mar 27 PHP
php源码分析之DZX1.5加密解密函数authcode用法
Jun 17 PHP
php上传图片获取路径及给表单字段赋值的方法
Jan 23 PHP
PHP结合Mysql数据库实现留言板功能
Mar 04 PHP
PHP自定义错误用法示例
Sep 28 PHP
yii2实现Ueditor百度编辑器的示例代码
Nov 02 PHP
PHP使用Session实现上传进度功能详解
Aug 06 PHP
PHP中关于php.ini参数优化详解
Feb 28 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编程之高级技巧——利用Mysql函数
2006/10/09 PHP
mayfish 数据入库验证代码
2010/04/30 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
PHP中in_array函数使用的问题与解决办法
2016/09/11 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
jquery弹出层类代码分享
2013/12/27 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
浅谈jQuery中replace()方法
2015/05/13 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
实例讲解Vue.js中router传参
2018/04/22 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
python 使用 requests 模块发送http请求 的方法
2018/12/09 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
2019年Java面试必问之经典试题
2012/09/12 面试题
五十岁生日宴会答谢词
2014/01/15 职场文书
药品促销活动方案
2014/02/14 职场文书
求职自荐信怎么写
2014/03/06 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
2016大一新生军训感言
2015/12/08 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python
Python数据可视化之绘制柱状图和条形图
2021/05/25 Python
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python