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 清除网页病毒的方法
Dec 05 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
Sep 16 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
PHP中通过fopen()函数访问远程文件示例
Nov 18 PHP
php中JSON的使用与转换
Jan 14 PHP
php+ajax无刷新上传图片实例代码
Nov 17 PHP
php开发时容易忘记的一些技术细节
Feb 03 PHP
深入解析PHP的Laravel框架中的event事件操作
Mar 21 PHP
php获取远程图片并下载保存到本地的方法分析
Oct 08 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
php apache开启跨域模式过程详解
Jul 08 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中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
php按单词截取字符串的方法
2015/04/07 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
javascript日期对象格式化为字符串的实现方法
2014/01/14 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
setTimeout学习小结
2017/02/08 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
用vue写一个日历
2020/11/02 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
python 回调函数和回调方法的实现分析
2016/03/23 Python
Linux下python3.7.0安装教程
2018/07/30 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
Prototype如何更新局部页面
2013/03/03 面试题
若干个Java基础面试题
2015/05/19 面试题
办公室前台岗位职责
2014/01/04 职场文书
中层竞聘演讲稿
2014/01/09 职场文书
男方父母证婚词
2014/01/12 职场文书
协议书模板
2014/04/23 职场文书
啦啦队口号大全
2014/06/16 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
民主评议政风行风整改方案
2014/09/17 职场文书
招标授权委托书样本
2014/09/23 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
调研报告的主要写法
2019/04/18 职场文书