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中的cookie
Nov 26 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
解析在apache里面给php写虚拟目录的详细方法
Jun 24 PHP
php一次性删除前台checkbox多选内容的方法
Sep 22 PHP
php 生成自动创建文件夹并上传文件的示例代码
Mar 07 PHP
PHP合并静态文件详解
Nov 14 PHP
浅谈ThinkPHP的URL重写
Nov 25 PHP
php实现将数组转换为XML的方法
Mar 09 PHP
PHP文件缓存类实现代码
Oct 26 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
Laravel实现ApiToken认证请求
Oct 14 PHP
PHP引擎php.ini参数优化深入讲解
Mar 24 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 #PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 #PHP
Yii2 中实现单点登录的方法
Mar 09 #PHP
php中输出json对象的值(实现方法)
Mar 07 #PHP
php 读写json文件及修改json的方法
Mar 07 #PHP
php读取本地json文件的实例
Mar 07 #PHP
PHP中in_array的隐式转换的解决方法
Mar 06 #PHP
You might like
PHP实现网上点歌(二)
2006/10/09 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
2015/07/27 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
2016/03/18 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
webstorm中vue语法的支持详解
2018/05/09 Javascript
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
vue 实现小程序或商品秒杀倒计时
2019/04/14 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
如何在微信小程序中存setStorage
2019/12/13 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
Python实现Linux下守护进程的编写方法
2014/08/22 Python
Python实现SVN的目录周期性备份实例
2015/07/17 Python
Python分支结构(switch)操作简介
2018/01/17 Python
python 将md5转为16字节的方法
2018/05/29 Python
Python实现去除图片中指定颜色的像素功能示例
2019/04/13 Python
基于python traceback实现异常的获取与处理
2019/12/13 Python
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
大专应届生个人的自我评价
2013/11/21 职场文书
大学生个人事迹材料
2014/01/21 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
公务员考察材料范文
2014/12/23 职场文书
只需要12页,掌握撰写一流商业计划书的技巧
2019/05/07 职场文书