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 相关文章推荐
网站当前的在线人数
Oct 09 PHP
PHP 采集心得技巧
May 15 PHP
使用Apache的htaccess防止图片被盗链的解决方法
Apr 27 PHP
PHP中nowdoc和heredoc使用需要注意的一点
Mar 21 PHP
thinkphp框架实现数据添加和显示功能
Jun 29 PHP
PHP环形链表实现方法示例
Sep 15 PHP
thinkPHP框架实现的短信接口验证码功能示例
Jun 20 PHP
php+croppic.js实现剪切上传图片功能
Aug 14 PHP
Laravel关系模型指定条件查询方法
Oct 10 PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
Nov 27 PHP
WordPress多语言翻译插件 - WPML使用教程
Apr 01 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/11/12 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
php常用字符函数实例小结
2016/12/29 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
微信小程序实现一张或多张图片上传(云开发)
2019/09/25 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
python使用urllib模块和pyquery实现阿里巴巴排名查询
2014/01/16 Python
python3.3实现乘法表示例
2014/02/07 Python
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
python调用fortran模块
2016/04/08 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
2017/07/06 Python
python运行其他程序的实现方法
2017/07/14 Python
Python GUI Tkinter简单实现个性签名设计
2018/06/19 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
Python 实现自动导入缺失的库
2019/10/29 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
基于python实现删除指定文件类型
2020/07/21 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
公务员试用期满考核材料
2014/05/22 职场文书
销售提升方案
2014/06/07 职场文书
地球上的星星观后感
2015/06/02 职场文书
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL