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 相关文章推荐
paypal即时到账php实现代码
Nov 28 PHP
第五章 php数组操作
Dec 30 PHP
php判断正常访问和外部访问的示例
Feb 10 PHP
PHP中copy on write写时复制机制介绍
May 13 PHP
合格的PHP程序员必备技能
Nov 13 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
May 06 PHP
项目中应用Redis+Php的场景
May 22 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
php生成图片缩略图功能示例
Feb 22 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
微信公众号之主动给用户发送消息功能
Jun 22 PHP
基于PHP实现短信验证码发送次数限制
Jul 11 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
9个JavaScript评级/投票插件
2010/01/18 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
2013/02/05 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
详解javascript函数的参数
2015/11/10 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
详解python3百度指数抓取实例
2016/12/12 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
python3 简单实现组合设计模式
2020/07/02 Python
台湾生鲜宅配:大口市集
2017/10/14 全球购物
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
体育教育个人自荐信范文
2013/12/01 职场文书
学生爱国演讲稿
2014/01/14 职场文书
初一新生军训方案
2014/05/22 职场文书
校园主题婚礼活动策划方案
2014/09/15 职场文书
导游词之安徽九华山
2019/09/18 职场文书