分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

PHP定义字符串的四种方式

发布时间:2023-09-06 02:34责任编辑:彭小芳关键词:PHP
回到顶部

1、简介

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

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

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

回到顶部

2、单引号与双引号

回到顶部

  2.1、单引号

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

eg.

1 <?php2 $var = ‘this is a var!‘;3 echo ‘666$var666、\‘、\"、\\、\n、\r、\t、\$‘;

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

回到顶部

  2.2、双引号

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

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

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

eg. 

1 <?php2 $var = ‘this is a var!‘; 3 echo "666$var 666、\‘、\"、\\、\n、\r、\t、\$";

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

回到顶部

  2.3、单双引号之间的区别

以上两者主要区别:
  1、双引号会替换变量的值,而单引号会把它当做字符串输出。
  2、对于转义的支持
  3、性能速度问题,由于双引号中的字符串需要检测是否含有$符号修饰的变量,因此从理论上讲,单引号是比较快的。
回到顶部

3、heredoc与nowdoc

回到顶部

  3.1、heredoc

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

语法要求:

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

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

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

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

eg.

 1 <?php 2 ?3 $var = ‘this is suifeng‘; 4 ?5 echo <<<"EOT" 6 ?7 <!DOCTYPE html> 8 <html> 9 <head>10 ????<meta http-equiv="Content-Type" content="text/html; charset=utf8" />11 ????<title>"随风"</title>12 </head>13 <body>14 66666666666<br/>15 "666666666"<br/>16 $var<br/>17 \$var<br/>18 \n666<br>19 </body>20 </html>21 22 EOT;

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

回到顶部

  3.2、nowdoc

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

   语法同heredoc

eg.

 1 <?php 2 ?3 $var = ‘this is suifeng‘; 4 ?5 echo <<<‘EOT‘ 6 ?7 <!DOCTYPE html> 8 <html> 9 <head>10 ????<meta http-equiv="Content-Type" content="text/html; charset=utf8" />11 ????<title>"随风"</title>12 </head>13 <body>14 ‘02020‘<br/>15 \‘<br/>16 66666666666<br/>17 "666666666"<br/>18 $var<br/>19 \$var<br/>20 \n666<br>21 </body>22 </html>23 24 EOT;

注意:

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

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

(以上是自己的一些见解,若有不足或者错误的地方请各位指出)

 作者:那一叶随风   http://www.cnblogs.com/phpstudy2015-6/

 原文地址:http://www.cnblogs.com/phpstudy2015-6/p/8418822.html

 声明:本博客文章为原创,只代表本人在工作学习中某一时间内总结的观点或结论。转载时请在文章页面明显位置给出原文链接

PHP定义字符串的四种方式

原文地址:https://www.cnblogs.com/applelife/p/10476874.html

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved