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中的时间显示
Jan 18 PHP
PHP UTF8编码内的繁简转换类
Jul 20 PHP
第五章 php数组操作
Dec 30 PHP
处理单名多值表单的详解
Jun 08 PHP
json的键名为数字时的调用方式(示例代码)
Nov 15 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
Feb 13 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
May 12 PHP
基于PHP给大家讲解防刷票的一些技巧
Nov 18 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
Jan 07 PHP
详解PHP归并排序的实现
Oct 18 PHP
Laravel框架搜索分页功能示例
Feb 01 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 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
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
php curl模拟post请求小实例
2013/11/13 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
js最简单的拖拽效果实现代码
2010/09/24 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
深入分析JSONP跨域的原理
2014/12/10 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
jqGrid用法汇总(全经典)
2016/06/28 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
Python中文编码那些事
2014/06/25 Python
Python制作数据导入导出工具
2015/07/31 Python
PyQt Qt Designer工具的布局管理详解
2019/08/07 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
python使用SQLAlchemy操作MySQL
2020/01/02 Python
python tkinter之顶层菜单、弹出菜单实例
2020/03/04 Python
Python函数生成器原理及使用详解
2020/03/12 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
工业设计专业个人求职信范文
2013/12/28 职场文书
高中化学教学反思
2014/01/13 职场文书
法人身份证明书
2014/10/08 职场文书
党员自评材料范文
2014/12/17 职场文书