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 相关文章推荐
一个简单的自动发送邮件系统(一)
Oct 09 PHP
由php的call_user_func传reference引发的思考
Jul 23 PHP
使ecshop模板中可引用常量的实现方法
Jun 02 PHP
php中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
解析php中eclipse 用空格替换 tab键
Jun 24 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
php使用Cookie控制访问授权的方法
Jan 21 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
PHP云打印类完整示例
Oct 15 PHP
PHP实现的观察者模式实例
Jun 21 PHP
PHP批量删除jQuery操作
Jul 23 PHP
PHP校验15位和18位身份证号的类封装
Nov 07 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+DBM的同学录程序(2)
2006/10/09 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
Javascript 二维数组
2009/11/26 Javascript
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
vue生命周期实例小结
2018/08/15 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
python实现计算倒数的方法
2015/07/11 Python
Python3访问并下载网页内容的方法
2015/07/28 Python
Python实现基本数据结构中队列的操作方法示例
2017/12/04 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
python调用外部程序的实操步骤
2019/03/04 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
如何将无状态会话Bean发布为WEB服务,只有无状态会话Bean可以发布为WEB服务?
2015/12/03 面试题
毕业生找工作的求职信范文
2013/12/24 职场文书
出生医学证明样本
2014/01/17 职场文书
青春奉献演讲稿
2014/05/08 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
实习介绍信范文
2015/05/05 职场文书
音乐剧猫观后感
2015/06/04 职场文书
歌舞青春观后感
2015/06/10 职场文书