php中的单引号、双引号和转义字符详解


Posted in PHP onFebruary 16, 2017

PHP单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name);最大的区别是: 双引号会替换变量的值,而单引号会把它当做字符串输出。

例如:

<?php

    $name="string";

    echo " 字符串" . '$name';

    echo  "字符串" . "$name"; 

?>

结果:

字符串$name

字符串string

转义字符,顾名思义会将规定的语法用"\"来输出。但语法规定在不同的系统中转义字符的作用不同,例如:windows下的回车换行符用"\r"或"\n",而Linux 这两就有很大的区别:"\r"光标回到行首,但还在本行; "\n"表示下一行,不会回到行首。

PHP中的转义字符有:

" \n" ==>换行

"\r"==>回车

"\t"==>水平制表符

"\\"==> 反斜杠

"\$" ==>美元符号

" \' "==>单引号

" \" " ==>双引号

" \[0-7]{1,3} " 正则表达式匹配一个八进制符号表示的字符

" \x[0-9A-Fa-f]{1,2} " 正则表达式匹配一个十六进制符号表示的字符

在PHP中,可以使用 echo() 和 print() 语句发送数据到Web浏览器,也可以使用它们发送HTML 代码到Web浏览器。从技术上讲,echo() 和 print() 是语言构造,而不是函数,这里用了一对括号,从而有助于与变量以及PHP的其他部分区分开。这两个语句本质上没有什么区别,因此用那一个都不会产生任何问题。这依个人习惯。它们不区分大小字。

在PHP中,理解单引号与双引号有什么区别是重要的。当所发送的数据中涉及到单引号和双引号时,在打印双引号时使用单引号,反之亦然,如:

echo 'She said,"How are you?"'; 

print "I'm just ducky.";

或者,通过在有问题的字符前面放置一个反斜杠,对它进行转义:

echo "She said,\"How are you?\" ";

print 'I\'m just ducky.';

在PHP中,封闭在单引号内的值将照字面意义进行处理,而封闭在双引号内的值则将被解释。换句话说,把变量和特殊字符(见表1)放在双引号内将导致打印出它们所表示的值,而不是它们的字面值。如:

$var = 'test';

代码 echo "var is equal to $var";

将打印出 var is equal to test,而代码echo 'var is equal to $var';

将打印出var is equal to $var。使用一个转义的美元符号,代码echo"\$var is equal to $var";

将打印出$var is equal to test,而代码echo '\$var is equal to $var';

将打印出\$var is equal to $var。

表1 当在双引号内使用这些字符时,它们具有特殊的含义

转义字符代码 转义字符的含义
\ " 双引号
\ ' 单引号
\ \ 反斜杠
\ n 换行符
\ r 回车符
\ t 制表符
\ $ 美元符号

正如以上例子所说明的,双引号将用变量的值(test)代替它的名称($var),并用特殊字符表示的值($)代替它的代码(\$)。单引号总是准确地打印你输入的内容,除了转义的单引号(\')和转义的反斜杠(\\)之外,它们将分别被打印为一个单引号和一个反斜杠。

提示:

1、由于PHP将试图找出那些需要将其值插入到双引号内的变量,所以从理论上讲,使用单引号要快一些。但是,如果需要打印一个变量的值,则必须使用双引号。

2、因为有效的HTML常常包括许多用双引号括住的属性,所以当利用PHP打印HTML时,使用单引号最容易。

echo '<table width="200" border="1" cellspacing="5" cellpadding="2" align="center">';

如果想使用双引号打印出上面这段HTML代码,将不得不对字符串中的所有双引号进行转义,所以相对来说较麻烦。

以上这篇php中的单引号、双引号和转义字符详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php实现jQuery扩展函数
Oct 30 PHP
无需重新编译php加入ftp扩展的解决方法
Feb 07 PHP
如何利用PHP执行.SQL文件
Jul 05 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 PHP
PHP设计模式之工厂模式实例总结
Sep 01 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
php post json参数的传递和接收处理方法
May 31 PHP
Thinkphp5.0框架视图view的模板布局用法分析
Oct 12 PHP
php 使用 __call实现重载功能示例
Nov 18 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 PHP
php输出图像的方法实例分析
Feb 16 #PHP
替换php字符串中的单引号为双引号的方法
Feb 16 #PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 #PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
Feb 16 #PHP
php的PDO事务处理机制实例分析
Feb 16 #PHP
php使用include 和require引入文件的区别
Feb 16 #PHP
Yii2实现UploadedFile上传文件示例
Feb 15 #PHP
You might like
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
2016/06/26 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
2019/07/25 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
[09:13]DOTA2-DPC中国联赛 正赛 Ehome vs Magma 选手采访 1月19日
2021/03/11 DOTA
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
python的链表基础知识点
2020/09/13 Python
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
请解释在new与override的区别
2012/10/29 面试题
外贸英语专业求职信范文
2013/12/25 职场文书
校园安全广播稿范文
2014/09/25 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
工程部岗位职责
2015/02/10 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
分析设计模式之模板方法Java实现
2021/06/23 Java/Android