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 程序员的调试技术小结
Nov 15 PHP
php生成xml简单实例代码
Dec 16 PHP
PHP OPCode缓存 APC详细介绍
Oct 12 PHP
php 学习资料零碎东西
Dec 04 PHP
解析htaccess伪静态的规则
Jun 18 PHP
php实现汉字验证码和算式验证码的方法
Mar 07 PHP
Yii2 rbac权限控制之菜单menu实例教程
Apr 28 PHP
Yii2简单实现给表单添加验证码的方法
Jul 18 PHP
php生成与读取excel文件
Oct 14 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
PHP fclose函数用法总结
Feb 15 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 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函数的常用方法及注意之处小结
2011/07/10 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
一端时间轮换的广告
2006/06/26 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
简介JavaScript中的italics()方法的使用
2015/06/08 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
angular 用Observable实现异步调用的方法
2018/12/27 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
javascript关于“时间”的一次探索
2019/07/24 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
Python采用Django制作简易的知乎日报API
2016/08/03 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
Charlotte Tilbury英国官网:英国彩妆品牌
2017/05/26 全球购物
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
学历公证书范本
2014/04/09 职场文书
化妆品活动策划方案
2014/05/23 职场文书
北京爱情故事观后感
2015/06/12 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android