PHP定义字符串的四种方式详解


Posted in PHP onFebruary 06, 2018

1、简介

在PHP中这门语言中,因为是弱类型语言,因此使用变量时不需提前定义即可使用。

我们在使用php进行开发的时候,大多数使用双引号、单引号进行定义字符串。既然有这两种方式,那么他们之间肯定是有区别的。

并且,除了单双引号定义字符串这两种方式外,php还增加了heredoc和nowdoc这两种语法糖进行补充。

2、单引号与双引号

2.1、单引号

在单引号中,任何特殊字符都会按原样输出【除\\、\‘将会被转义输出】

eg.

<?php
$var = 'this is a var!';
echo '666$var666、\'、\"、\\、\n、\r、\t、\$';

PHP定义字符串的四种方式详解 

从上面例子中我们可以明显看到,变量是没有被解析的;同时带反斜杠的转义字符仅仅只有单引号、反斜杠被转义输出了,其他的是直接输出。

2.2、双引号

在双引号中,遇到$将会解析该变量;

双引号中会转义反斜杠的转义字符;

<?php
$var = 'this is a var!'; 
echo "666$var 666、\'、\"、\\、\n、\r、\t、\$";

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

由上面例子我们可以知道,双引号中的变量被解析了,替换成字符串;其他带反斜杠的转义字符都进行了相应的转义。

PHP定义字符串的四种方式详解 

2.3、单双引号之间的区别

以上两者主要区别:

1、 双引号会替换变量的值,而单引号会把它当做字符串输出。

2、对于转义的支持

3、性能速度问题,由于双引号中的字符串需要检测是否含有$符号修饰的变量,因此从理论上讲,单引号是比较快的。

3、heredoc与nowdoc

3.1、heredoc

heredoc可以理解为不使用双引号来定义字符串,但效果与使用双引号一致。【此时双引号相当于普通字符】

语法要求:

1、开始标记和结束标记使用相同的字符串,通常以大写字母来写。

2、开始标记后不能出现空格或多余的字符。

3、结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。

4、位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。

eg.

<?php
 $var = 'this is suifeng'; 
 echo <<<"EOT"
 <!DOCTYPE html>
 <html>
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
   <title>"随风"</title>
 </head>
 <body>
 66666666666<br/>
 "666666666"<br/>
 $var<br/>
 \$var<br/>
 \n666<br>
 </body>
 </html>
 EOT;

PHP定义字符串的四种方式详解 

从打印的结果我们可以看出:此时双引号仅仅只是一个普通字符;其他的效果和双引号的字符串效果一致。

3.2、nowdoc

同理,nowdoc是不使用单引号来定义,但效果相当于使用单引号来定义的字符串。【此时单引号相当于普通字符】

语法同heredoc

eg.

<?php 
 $var = 'this is suifeng'; 
 echo <<<'EOT' 
 <!DOCTYPE html>
 <html>
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
   <title>"随风"</title>
 </head>
 <body>
 '02020'<br/>
 \'<br/>
 66666666666<br/>
 "666666666"<br/>
 $var<br/>
 \$var<br/>
 \n666<br>
 </body>
 </html>
 EOT;

PHP定义字符串的四种方式详解 

注意:

定界符之后必须不能有任何字符【特别是空格字符有时会没注意到】,否则将会出错。

如上例中的EOT后面有空格就会报这个错误:【 Parse error : syntax error, unexpected '<<' (T_SL)】

总结

以上所述是小编给大家介绍的PHP定义字符串的四种方式详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP中遍历stdclass object的实现代码
Jun 09 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
Jul 23 PHP
php实现的常见排序算法汇总
Sep 08 PHP
PHP实现的下载远程图片自定义函数分享
Jan 28 PHP
php动态函数调用方法
May 21 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
Dec 23 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
Feb 22 PHP
Smarty分页实现方法完整实例
May 11 PHP
php无限级分类实现方法分析
Oct 19 PHP
PHP设计模式之建造者模式定义与用法简单示例
Aug 13 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 PHP
YII2框架中添加自定义模块的方法实例分析
Mar 18 PHP
PHP异步进程助手async-helper
Feb 05 #PHP
详解PHP中的外观模式facade pattern
Feb 05 #PHP
浅析PHP开发规范
Feb 05 #PHP
实例讲解PHP页面静态化
Feb 05 #PHP
PHP使用ActiveMQ实例
Feb 05 #PHP
详解PHP中mb_strpos的使用
Feb 04 #PHP
详解PHP文件的自动加载(autoloading)
Feb 04 #PHP
You might like
PHP使用者状态管理功能的应用
2006/10/09 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
php中namespace use用法实例分析
2016/01/22 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
2017/12/27 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
2019/03/14 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
Python中实现结构相似的函数调用方法
2015/03/10 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
艺术设计专业个人求职信
2013/09/21 职场文书
主治医师岗位职责
2013/12/10 职场文书
考试不及格的检讨书
2014/01/22 职场文书
求职意向书范文
2014/04/01 职场文书
交通事故协议书
2014/04/15 职场文书
教师自我剖析材料
2014/09/29 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
四年级语文教学反思
2016/03/03 职场文书