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生成静态页的实现方法
May 10 PHP
php setcookie(name, value, expires, path, domain, secure) 参数详解
Jun 28 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
Nov 19 PHP
php字符串函数学习之substr()
Mar 27 PHP
微信公众平台开发之天气预报功能
Aug 31 PHP
WordPress中用于检索模版的相关PHP函数使用解析
Dec 15 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
layui数据表格自定义每页条数limit设置
Oct 26 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 05 PHP
PHP并发场景的三种解决方案代码实例
Feb 27 PHP
PHP之header函数详解
Mar 02 PHP
PHP实现rar解压读取扩展包小结
Jun 03 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
第四节--构造函数和析构函数
2006/11/16 PHP
收集的PHP中与数组相关的函数
2007/03/22 PHP
JS与PHP向函数传递可变参数的区别实例代码
2011/05/18 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
php4与php5的区别小结(配置异同)
2011/12/20 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
Jquery+JSon 无刷新分页实现代码
2010/04/01 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
使用BootStrap进行轮播图的制作
2017/01/06 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
vue使用Axios做ajax请求详解
2017/06/07 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
python实现得到一个给定类的虚函数
2014/09/28 Python
Python之re操作方法(详解)
2017/06/14 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
python tkinter组件摆放方式详解
2019/09/16 Python
Python hmac模块使用实例解析
2019/12/24 Python
New Balance加拿大官方网站:运动鞋和健身服装
2018/11/19 全球购物
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
任命书模板
2014/06/04 职场文书
宿舍标语大全
2014/06/19 职场文书
社团活动总结怎么写
2014/06/30 职场文书
生日答谢词
2015/01/05 职场文书
社区党务工作总结2015
2015/05/19 职场文书
同学聚会感言一句话
2015/07/30 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技