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 相关文章推荐
动态网站web开发 PHP、ASP还是ASP.NET
Oct 09 PHP
php5 图片验证码实现代码
Dec 11 PHP
PHP之数组学习
May 29 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
Jan 13 PHP
迁移PHP版本到PHP7
Feb 06 PHP
Linux系统下php获得系统分区信息的方法
Mar 30 PHP
PHP实现文件上传和多文件上传
Dec 24 PHP
全面了解PHP中的全局变量
Jun 17 PHP
在PHP语言中使用JSON和将json还原成数组的方法
Jul 19 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
PHP实现从上往下打印二叉树的方法
Jan 18 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 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
德劲1107的电路分析与打磨
2021/03/02 无线电
php入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
PHP结合Mysql数据库实现留言板功能
2016/03/04 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
javascript jQuery插件练习
2008/12/24 Javascript
jQuery select操作控制方法小结
2010/05/26 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
简单的分页代码js实现
2016/05/17 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
python检测服务器端口代码实例
2019/08/31 Python
Python读取实时数据流示例
2019/12/02 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
传播学专业毕业生自荐信
2013/11/04 职场文书
技术学校毕业生求职信分享
2013/12/02 职场文书
初中校园之声广播稿
2014/01/15 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
小学新学期寄语
2014/04/02 职场文书
委托公证书
2014/04/08 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
投标单位介绍信
2015/05/05 职场文书
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript